Hallo, wie kann man Event Handler in C# Prioritäten verleihen? Beispiel: In einem Windows Frame sind zwei Buttons. Start und Stopp Klicke ich Start, gelange ich in den Start_Click Event Handler. Angenommen dort läuft nun eine Schleife die 1 min Durchlaufzeit benötigt. Klicke ich Stopp, während der Abarbeitung der Schleife im Event Handler Start_Click, tut sich nicht sofort etwas. Erst wenn die Schleife komplett abgearbeitet ist, wird in den Event Handler Stopp_Click verzweigt. Wie kann man erzwingen, dass sofort in den Event Handler Stopp_Klick verzweigt wird und nicht erst dann, wenn das Event Start_Klick abgearbeitet ist.
Hallo, Das Stichwort heist Threading. Du solltest generell Langlaufende Aktionen in einen eigenen Thread auslagern um die GUI nicht zu blockieren. Dazu könntest du b.B. de BackgroundWorker benutzen, da der einem schon einigen an Synchronisation abnimmt. Es gäbe schon noch den "Dirty-Hack" Application.DoEvents um innerhalb der Schleife die Abarbeitung der Nachrichtenschleife (anstehende Events werden abgearbeitet) anzustossen, was aber nicht empfehlenswert ist, besser setzt du dich mit Threads auseinander. greetz dechavue PS: Noch ein interessanter Link zu dem Thema: http://www.mycsharp.de/wbb2/thread.php?threadid=27992
Chris E. DANKE viel mals für deinen post. ich hab bereits ewig nach einer methode gesucht, die die events während einer schleife abhandelt. konnte keine threads benutzen und war daher auf solch eine methode angewiesen. hab googelt was die tastatur hergab, auf englisch auf deutsch, aber nichts, und dann gelang ich durch so eine unscheinbare überschrift auf diese seite, und voila es geht!! DANKe vielmals ;)
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.