Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Warum DoEvents Mist ist!

Moderationshinweis von herbivore (23.11.2011 - 09:47:17):

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!

Programmierhans
myCSharp.de - Experte

Avatar #avatar-1651.gif


Dabei seit:
Beiträge: 4318
Herkunft: Zentralschweiz

Themenstarter:

Warum DoEvents Mist ist!

beantworten | zitieren | melden

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

- Clear des internen DataSets
- Import von Daten in das interne DataSet
- DoEvents (damit das UI nicht so eingefroren aussieht)
- Prüfung der Daten des internen DataSet


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...
private Nachricht | Beiträge des Benutzers
herbivore
myCSharp.de - Experte

Avatar #avatar-2627.gif


Dabei seit:
Beiträge: 52329
Herkunft: Berlin

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers