J'ai le code suivant:Me.Invoke en VB.NET ne fait pas « Invoke » - fils de décrochage sur déclaration Invoke
Public Delegate Sub SetStatusBarTextDelegate(ByVal StatusText As String)
Private Sub SetStatusBarText(ByVal StatusText As String)
If Me.InvokeRequired Then
Me.Invoke(New SetStatusBarTextDelegate(AddressOf SetStatusBarText), StatusText)
Else
Me.labelScanningProgress.Text = StatusText
End If
End Sub
Le problème est que, quand je l'appelle la « SetStatusBarText » sub d'un autre thread, InvokeRequired est True (comme il se doit), mais mes threads bloquent sur l'instruction Me.Invoke - l'exécution de la pause les montre tout simplement assis là, n'invoquant rien.
Des pensées sur pourquoi les threads semblent avoir peur de l'Invoke?
C'est exactement ce qui se passait - le "Me.Invoke" attendait que le thread principal réponde, mais le thread principal était encore occupé à bourrer des trucs dans le Threadpool comme les premiers threads étaient en train de finir. Merci pour votre conseil. – SqlRyan
Merci! J'attendais que les Invoke se terminent mais ils étaient tous gelés. J'ai ajouté un appel à System.Windows.Forms.Application.DoEvents() et cela fonctionne. –