myCSharp.de - DIE C# und .NET Community
Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 
 | Suche | FAQ

» Hauptmenü
myCSharp.de
» Startseite
» Forum
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Suche
» Regeln
» Wie poste ich richtig?
» Forum-FAQ

Mitglieder
» Liste / Suche
» Wer ist wo online?

Ressourcen
» openbook: Visual C#
» openbook: OO
» Microsoft Docs

Team
» Kontakt
» Übersicht
» Wir über uns

» myCSharp.de Diskussionsforum
Du befindest Dich hier: Community-Index » Diskussionsforum » Entwicklung » GUI: Windows-Forms » Warum DoEvents Mist ist!
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | Thema zu Favoriten hinzufügen

Antwort erstellen
Zum Ende der Seite springen  

Warum DoEvents Mist ist!

 
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
myCSharp.de
Moderationshinweis von herbivore (23.11.2011 09:47):

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-Poweruser/ Experte

avatar-1651.gif


Dabei seit: 05.04.2005
Beiträge: 4.221
Entwicklungsumgebung: VS2003-VS2013 / SAP WebIDE
Herkunft: Zentralschweiz


Programmierhans ist offline

Warum DoEvents Mist ist!

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

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).
10.11.2006 20:49 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Zwischen diesen beiden Beiträgen liegt mehr als ein Monat.
herbivore
myCSharp.de-Poweruser/ Experte

avatar-2627.gif


Dabei seit: 11.01.2005
Beiträge: 49.478
Entwicklungsumgebung: csc/nmake (nothing is faster)
Herkunft: Berlin


herbivore ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

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
18.12.2006 12:45 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Baumstruktur | Brettstruktur       | Top 
myCSharp.de | Forum Der Startbeitrag ist älter als 13 Jahre.
Der letzte Beitrag ist älter als 13 Jahre.
Antwort erstellen


© Copyright 2003-2020 myCSharp.de-Team | Impressum | Datenschutz | Alle Rechte vorbehalten. | Dieses Portal verwendet zum korrekten Betrieb Cookies. 08.08.2020 02:20