Erst das 2. Event löst aus...

  • VB.NET
  • .NET (FX) 4.0

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    Erst das 2. Event löst aus...

    Moin Forum,

    ich hage ein ganz merkwürdiges Verhalten, was ich mir absolut nicht erklären kann.
    In einem Thread werden Ereignisse ausgelöst. Teile davon funktionieren auch hervorragend (z.B. setzen des Wertes eines Statusbars). Hier wird jedes mal brav die GUI auf den neuesten Stand gebracht...

    Bei folgendem Event wird aber erst das 2. Event ausgelöst (das zweite Ereignis habe ich nur zum Testen hinzugefügt).

    VB.NET-Quellcode

    1. If Not found Then
    2. RaiseEvent ErrorOccured(True, "Error")
    3. RaiseEvent ErrorOccured(True, "Test Error")
    4. Exit Sub
    5. End If


    Hat jemand ne Idee warum so was passieren kann?

    Vielen Dank schon mal vorweg
    Viele Grüße
    Tukuan


    Wenn ich

    Visual Basic-Quellcode

    1. found = False
    vorher schreibe, scheint es zu gehen - HÄ?
    Gruß
    Tukuan

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Tukuan“ ()

    Ziemlich einleuchtend. If Not found testet auf found=false, und nur dann wird Deine Bedingung ausgeführt. Sez mal nen Breakpoibt auf Zeile 1 und guck Dir den Inhalt von found an.
    Es könnte sein, das irgenwo vorher im Programmmcode found=true gesetzt wurde, vielleicht sogar in einem anderen Thread?
    War wohl komisch ausgedrückt von mir...
    Also im ersten Fall habe ich einen Breakpoint auf die If-Abfrage gelegt und dann einfach die zu ausführende Zeile auf die 1. raise event Zeile gelegt und dann mit einzelstep durchgestep. Dann wird der erste Event nicht ausgelöst.
    Mit der Zeile found = false davor scheint es nun zu gehen.
    Beide Events werden ausgelöst.
    Aber warum?

    Tukuan schrieb:

    VB.NET-Quellcode

    1. RaiseEvent ErrorOccured(True, "Error")
    Gib mal Deinem Event die richtige Event-Signatur, leite dazu eine Deine Klasse von EventArgs ab.
    Bist Du im richtigen Event-Handler? Setz da mal einen Haltepunkt rein.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!