C# .NET mit Forms und Console | Events
-
Hallo,
hat die Windows Forms Anwendung irgend einen Message handler im Hintergrund laufen? Kann man so einen Message Handler auch in ein Consolen Programm mit reinnehmen?Habe folgendes Problem:
Habe eine Consolenanwendung geschrieben die auf eine Event Benachrichtigung wartet. Bei der Consolen Version funktioniert es nicht, aber dafür bei der Forms Anwendung. Das Schließen der Consolenanwendung hab ich mit einer while bzw auch schon mit einem 2ten Thread verhindert, aber er bekommt das Event nicht.Hoffe Ihr könnt mir weiterhelfen.
Gruß,
Andy
-
Grundlegend funktionieren Events auch in Konsolenanwendungen. Vllt. beschreibst Du aber mal um was für ein Event es sich handelt bzw. schreibst, was Du überhaupt machst und welche Events Du meinst.
-
Hi,
habe es gerade gelöst:Es geht um das SystemState.Changed Event. Habe da ein "ChangeEventHandler" registriert, der Meldung macht sobald der Wert von "SystemProperty" geändert wird.
In der Consolenversion ist es notwendig folgenden code auszuführen.
while(1){ Application.DoEvents(); }
Gleich die nächste Frage zu Application.DoEvents():
Ist Application.DoEvents() blockierend wenn keine Systemnachricht vorhanden ist?
Habe momentan noch ein Thread.Sleep(500) Befehl drin um CPU Zeit zu sparen.Oder gibt es eine "schönere" Methode das Event auf die Beine zu Stellen?
Gruß,
Andy
-
Application.DoEvents(..) ist eine schlechte Idee.
Siehe folgender Post:
http://www.c-plusplus.net/forum/viewtopic-var-t-is-208458.htmlSimon
-
@simon.gysi:
DoEvents ist mit Vorsicht zu geniessen, allerdings nicht unbedingt eine Schlechte Idee.
Sonst müsste man auch sagen dass MessageBox.Show eine schlechte Idee ist, oder überhaupt alle modalen Dialoge.
Der einzige Unterschied der modale Dialoge meist weniger problematisch macht ist dass man keine Buttons im Parent-Fenster mehr anklicken kann während der modale Dialog sichtbar ist.
Sobald aber Timer ins Spiel kommen... bekommt man mit modalen Dialogen dasselbe Problem wie mit DoEvents.Ich persönlich bin auf jeden Fall der Meinung dass bei Threads VIEL mehr Fallstricke warten als bei DoEvents/Modalen Dialogen.