Dies ist ein Thread, auf den aus der FAQ verwiesen wird. Bitte keine weitere Diskussion, sondern nur wichtige Ergänzungen und diese bitte knapp und präzise. Vielen Dank!
Die Verwendung von DoEvents kann zudem dazu führen dass Funktionen erneut aufgerufen werden können bevor sie fertig sind was zu absolut nicht gewollten Zuständen führen kann.
Beispiel:
Import und Prüfung von externen Daten
Problem:
Durch das DoEvents kann der Import der Daten erneut gestartet werden. Die bereits importierten Daten werden gelöscht und erneut importiert.... und der zuerst gestartete Import crasht weil der zweite Import dem ersten die Daten unter'm Arsch weglöscht...
Eine alternative Möglichkeit Events von Komponenten welche in anderen Threads laufen findet ihr hier:
Komponenten mit mehreren Threads
In dem Artikel geht es darum, dass man der Komponente eine Referenz auf den UI-Thread mitgibt und somit die Events direkt im UI-Thread einlaufen weil die Komponente selber den Event in den UI-Thread invoked (und somit in der Eventbehandlung ein Zugriff auf das UI direkt ohne Invoke möglich wird).
Früher war ich unentschlossen, heute bin ich mir da nicht mehr so sicher...
Hallo Community,
svenson beschreibt in diesem Beitrag in Warten bis das Form neu gezeichnet wurde? noch ein weiteres Problem mit DoEvents beim Schließen der Anwendung.
Fazit: Lasst die Finger von DoEvents, auch wenn es noch so verlockend ist.
herbivore