ich den folgenden Code haben:Me.Invoke in VB.NET nicht wirklich "Invoke" - Themen Stall auf Invoke Anweisung
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
Das Problem ist, dass, wenn ich den "SetStatusBarText" Subw von einem anderen Thread, InvokeRequired ist True (wie es sein sollte), aber dann meine Threads Stall in der Me.Invoke-Anweisung - pausierende Ausführung zeigt ihnen alle nur sitzen dort, nicht tatsächlich etwas aufrufen.
Irgendwelche Gedanken darüber, warum die Threads Angst vor Invoke haben?
Genau das passierte - der "Me.Invoke" wartete darauf, dass der Haupt-Thread reagierte, aber der Haupt-Thread war immer noch damit beschäftigt, Sachen in den Threadpool zu packen, als die ersten Threads fertig waren. Danke für deinen Tipp. – SqlRyan
Danke! Ich wartete darauf, dass die Invokes fertig waren, aber sie waren alle eingefroren. Ich habe einen Aufruf von System.Windows.Forms.Application.DoEvents() hinzugefügt und es funktioniert. –