22/02/11 15:40
Question
Ciao a tutti,
da poco ho impostato option strict su ON ed ho notato alcuni problemi con il multithreading che proprio non riesco a spiegarmi :S
Praticamente,quando la avevo su OFF,ero solito usare le lambda expressions per eseguire altri thread in questo modo:
Il problema è che ora il thread viene sì eseguito,ma in un modo assurdo!
Se io per esempio metto una form con Show() prima di instanziare il thread e di avviarlo,questo metodo viene eseguito dopo che ha finito.
Come soluzione sono ritornato al "classico",ovvero scrivo una cosa di questo tipo:
Però non mi piace molto,perché sono obbligato a definire Value come object per farlo coincidere con la firma di ParameterizedThreadStart.
Qualche aiutino?
da poco ho impostato option strict su ON ed ho notato alcuni problemi con il multithreading che proprio non riesco a spiegarmi :S
Praticamente,quando la avevo su OFF,ero solito usare le lambda expressions per eseguire altri thread in questo modo:
Private Sub AsyncOperation() Dim Parameter As String = "String" Dim T As New Threading.Thread(Sub() MsgMe(Parameter)) : T.Start(Parameter) End Sub Private Sub MsgMe(ByVal Value As String) MessageBox.Show(Value) End Sub
Il problema è che ora il thread viene sì eseguito,ma in un modo assurdo!
Se io per esempio metto una form con Show() prima di instanziare il thread e di avviarlo,questo metodo viene eseguito dopo che ha finito.
Come soluzione sono ritornato al "classico",ovvero scrivo una cosa di questo tipo:
Private Sub AsyncOperation() Dim Parameter As String = "String" Dim T As New Threading.Thread(New Threading.ParameterizedThreadStart(AddressOf MsgMe)) : T.Start(Parameter) End Sub Private Sub MsgMe(ByVal Value As Object) MessageBox.Show(Value.ToString) End Sub
Però non mi piace molto,perché sono obbligato a definire Value come object per farlo coincidere con la firma di ParameterizedThreadStart.
Qualche aiutino?
Ultima modifica effettuata da Question 22/02/11 16:09
aaa