C# Event Handler Priorität

Gast #876005
Lesenswert?

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.
#876066
Lesenswert?

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
Gast #932201
Lesenswert?

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 ;)

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren