mikrocontroller.net

Forum: PC-Programmierung C# Event Handler Priorität


Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Chris ... (dechavue)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: verzweifelter c#ler (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.