Wie kann man das verhindern?
Es gibt zwei Möglichkeiten um dieses Problem zu umgehen:
- Die Verwendung eines BackgroundWorkers.
- Den entsprechenden Vorgang selbst in einem neuen Thread starten.
Zu 2.:
Es ist möglich Subroutinen in einem neuen Thread ausführen zu lassen, dabei ist aber folgendes zu beachten:
Seit der .Net Framework-Version 2.0 ist es nicht mehr möglich aus anderen Thread als dem der Anwendung auf Steuerelemente auf der Form zuzugreifen. Wird dies ignoriert wird bei dem Versuch eine Exception geworfen. Eine Lösung des Problems sind sogenannte „Delegates“ die mittels Invoke dem richtigen Thread zugewiesen werden.
Im Anhang befindet sich ein Beispiel zur Verwendung von Thread in Verbindung mit Delegates in C#. Wenn ich Zeit habe füge ich auch ein Beispiel in Visual Basic hinzu.
Fazit
Ich persönlich würde immer zum BackgroundWorker raten, da bei diesem die Handhabung der verschiedenen Threads entsprechend einfacher- und nicht so anfällig für Fehler ist.
Angehängte Datei(en)
-
thread_beispiel_cs.zip (13,47K)
Anzahl der Downloads: 20

Hilfe





.














RSS Feed