WaitAll for multiple handles on a STA thread is not supported
Bonjour,
Je désire faire un WaitHandle.WaitAll() en VB.Net, mais j'obtiens l'erreur indiquée dans le titre :s
J'ai cherché sur l'aide Microsoft et il faut apparemment passer le système de thread par défaut STA en MTA avec le <MTAThreadAttribute()> _.
J'ai donc testé cette solution en mettant le MTAThreadAttribute à la déclaration de la fonction (voir plus bas), mais j'ai à nouveau le même message d'erreur. Est-ce que quelqu'un pourrait m'indiquer la marche à suivre pour mener à bien cette opération svp?
La fonction est dans une simple classe possédant constructeur, attributs et méthodes (mais pas de main), elle est ensuite appelée depuis un main d'une autre classe.
Merci !!
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| <MTAThreadAttribute()> _
Public Function waitAll(ByVal msecondsTimeout As Integer) As Boolean
Console.WriteLine("Test")
If _workflows.Count > 0 Then
Dim handle(_workflows.Count - 1) As WaitHandle
Dim index As Integer = 0
For Each wrapper As WorkflowInstanceWrapper In _workflows.Values
handle(index) = wrapper.waitHandle
index = index + 1
Next
Return WaitHandle.WaitAll(handle, msecondsTimeout, False)
Else
Return True
End If
End Function |