Moin,
ich habe ein für mich interessantes Problem mit dem Aufruf von
Mir ist bewusst, dass das eigentlich ein Böses Spielzeug ist und man es (im CleanCode) gar nicht benutzt/braucht.
Jetzt ist es so, dass ich Software von meinem Vorgänger übernommen habe und weiterpflege.
Dort wurde in einer Funktion einige Male das besagte
Diese Funktion rufe ich aus einem Nicht-UI-Thread (WorkerThread) auf.
Und an der Stelle von
Der WorkerThread kommt demnach auch nicht aus der Funktion raus.
Das UI ist weiter ansprechbar da anderer Thread.
Wenn ich die Anwendung dann unterbreche, wird mir lediglich
Der WorkerThread wird im Shown-Event der Form1 erstellt und gestartet.
Einfach das
Allerdings würde ich gern wissen, warum sich die Anwendung daran zu Tode rackert.
Und es muss ja auch einen Grund geben, weshalb das
Daher meine Frage; Kann man irgendwie nachvollziehen, welche Events in der Pipeline stehen, die dann bei
Oder gibt es noch eine Andere Erklärung, warum
Danke für Eure Antworten!
~ Mfg
ich habe ein für mich interessantes Problem mit dem Aufruf von
Applicaiton.DoEvents()
.Mir ist bewusst, dass das eigentlich ein Böses Spielzeug ist und man es (im CleanCode) gar nicht benutzt/braucht.
Jetzt ist es so, dass ich Software von meinem Vorgänger übernommen habe und weiterpflege.
Dort wurde in einer Funktion einige Male das besagte
Application.DoEvents()
aufgerufen.Diese Funktion rufe ich aus einem Nicht-UI-Thread (WorkerThread) auf.
Und an der Stelle von
Application.DoEvents()
bleibt er in der Funktion stehen.Der WorkerThread kommt demnach auch nicht aus der Funktion raus.
Das UI ist weiter ansprechbar da anderer Thread.
Wenn ich die Anwendung dann unterbreche, wird mir lediglich
Form1.ShowDialog()
angezeigt, in der ich meinen WorkerThread erstelle, der dann die Funktion ausführt.Der WorkerThread wird im Shown-Event der Form1 erstellt und gestartet.
Einfach das
Application.DoEvents()
aus der Kommunikationsfunktion auskommentieren, dann funktioniert es.Allerdings würde ich gern wissen, warum sich die Anwendung daran zu Tode rackert.
Und es muss ja auch einen Grund geben, weshalb das
Application.DoEvents()
dort überhaupt steht...Daher meine Frage; Kann man irgendwie nachvollziehen, welche Events in der Pipeline stehen, die dann bei
Application.DoEvents()
abgearbeitet werden?Oder gibt es noch eine Andere Erklärung, warum
Application.DoEvents()
nicht fertig wird?Danke für Eure Antworten!
~ Mfg
Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „TRiViUM“ ()