Hallo,
ich arbeite zwischendurch an ein paar Projekten, um mich selbst in vb.net zu verbessern und zu lernen.
Ich hab ein bisschen mit 'Custom Event' und 'EventHandler' gearbeitet und wollte dadurch ein 'Invoke' erreichen, damit das Event auf dem Main UI-Thread ausgeführt wird.
Hier der Code, wie er in einer meiner Klassen steht.
Das Event 'PhaseOutRequestTimedOut' soll von einem separaten Thread aufgerufen werden (Raised), damit es in meiner Hauptform "empfangen" werden kann.
Jedoch wird beim hinzufügen eines EventHandlers (in Zeile 5) immer ein fehler zurückgegeben: NullReferenceException.
Verwiesen wird auf die Zeile 5: List_PhaseOutRequestTimedOut.Add(NewHandler)
Das Objekt 'List_PhaseOutRequestTimedOut' ist = 'Nothing'.
Aber warum? Ich hab es doch initialisiert?
Zur Info, die Variable steht mitten in der Klasse, also nicht ganz am Anfang. Ich dachte das wäre ok - ist es das?
Falls ihr mehr Infos oder Code braucht, gerne.
Vielen Dank erstmal für die Hilfe.
ich arbeite zwischendurch an ein paar Projekten, um mich selbst in vb.net zu verbessern und zu lernen.
Ich hab ein bisschen mit 'Custom Event' und 'EventHandler' gearbeitet und wollte dadurch ein 'Invoke' erreichen, damit das Event auf dem Main UI-Thread ausgeführt wird.
VB.NET-Quellcode
- Private List_PhaseOutRequestTimedOut As List(Of EventHandler) = New List(Of EventHandler)
- Custom Event PhaseOutRequestTimedOut As EventHandler
- AddHandler(ByVal NewHandler As EventHandler)
- List_PhaseOutRequestTimedOut.Add(NewHandler)
- End AddHandler
- RemoveHandler(ByVal Handler As EventHandler)
- List_PhaseOutRequestTimedOut.Remove(Handler)
- End RemoveHandler
- RaiseEvent(ByVal sender As Object, ByVal e As System.EventArgs)
- For Each Handler In List_PhaseOutRequestTimedOut
- Handler.BeginInvoke(sender, e, New AsyncCallback(AddressOf EndAsync), Nothing)
- Next
- End RaiseEvent
- End Event
Hier der Code, wie er in einer meiner Klassen steht.
Das Event 'PhaseOutRequestTimedOut' soll von einem separaten Thread aufgerufen werden (Raised), damit es in meiner Hauptform "empfangen" werden kann.
Jedoch wird beim hinzufügen eines EventHandlers (in Zeile 5) immer ein fehler zurückgegeben: NullReferenceException.
Verwiesen wird auf die Zeile 5: List_PhaseOutRequestTimedOut.Add(NewHandler)
Das Objekt 'List_PhaseOutRequestTimedOut' ist = 'Nothing'.
Aber warum? Ich hab es doch initialisiert?
Zur Info, die Variable steht mitten in der Klasse, also nicht ganz am Anfang. Ich dachte das wäre ok - ist es das?
Falls ihr mehr Infos oder Code braucht, gerne.
Vielen Dank erstmal für die Hilfe.
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „BigDaddy“ ()