Hallo zusammen,
ich habe ein Problem mit dem Thread-Handling.
Bei mir ist es so, dass ich Hardware über eine serielle Schnittstelle angeschlossen habe und wenn von dort aus ein Befehl kommt, soll sich etwas auf meiner Oberfläche ändern. Hab ich schon hunderttausendmal gemacht, aber dieses Mal läuft's schief und ich weiß nicht warum.
Das ist die Delegate-Routine über die ich meine Zuweisung mache...
... und trotzdem bekomme ich die Fehlermeldung...
... weil die Property InvokeRequired false ist, obwohl ich durch's debuggung genau sehe, dass der Impuls zum Aufrufen der Routine aus meinem seriellen Schnittstellenkram heraus kommt. Dann läuft er zum Befehl und wirft natürlich den Fehler.
Zur Info:
das Control Child ist eine Ableitung einer PictureBox
das Control Parent ist das Panel eines SplitContainer
Unmittelbar vor dem Aufruf der DelegateToParent wird das Child erst erstellt (Child = new...). Könnte es damit zusammen hängen? Sprich der Handle auf das Objekt ist noch nicht bereit?
Wäre schön, wenn mir jemand helfen könnte.
Danke,
und viele Grüße,
Alex
ich habe ein Problem mit dem Thread-Handling.
Bei mir ist es so, dass ich Hardware über eine serielle Schnittstelle angeschlossen habe und wenn von dort aus ein Befehl kommt, soll sich etwas auf meiner Oberfläche ändern. Hab ich schon hunderttausendmal gemacht, aber dieses Mal läuft's schief und ich weiß nicht warum.
Das ist die Delegate-Routine über die ich meine Zuweisung mache...
Quellcode
- Private Delegate Sub ParentDelegate(ByVal Parent As Control, ByVal Child As Control)
- Private Sub DelegateToParent(ByVal Parent As Control, ByVal Child As Control)
- If Child.InvokeRequired Then
- Dim D As New ParentDelegate(AddressOf SetToParent)
- Dim PArray() As Object = New Object() {Parent, Child}
- Child.Invoke(D, PArray)
- Else
- Child.Parent = Parent
- End If
- End Sub
... und trotzdem bekomme ich die Fehlermeldung...
Ungültiger threadübergreifender Vorgang
... weil die Property InvokeRequired false ist, obwohl ich durch's debuggung genau sehe, dass der Impuls zum Aufrufen der Routine aus meinem seriellen Schnittstellenkram heraus kommt. Dann läuft er zum Befehl und wirft natürlich den Fehler.
Zur Info:
das Control Child ist eine Ableitung einer PictureBox
das Control Parent ist das Panel eines SplitContainer
Unmittelbar vor dem Aufruf der DelegateToParent wird das Child erst erstellt (Child = new...). Könnte es damit zusammen hängen? Sprich der Handle auf das Objekt ist noch nicht bereit?
Wäre schön, wenn mir jemand helfen könnte.
Danke,
und viele Grüße,
Alex