Threadstatuswerte

Aktualisiert: November 2007

Die ThreadState-Eigenschaft stellt Informationen über den Status eines Threads bereit. Da ein Thread zu einem bestimmten Zeitpunkt mehrere Statuswerte aufweisen kann, kann der in ThreadState gespeicherte Wert eine Kombination der Werte in der ThreadState-Enumeration sein. Wenn beispielsweise ein Thread bei einem Aufruf von Wait blockiert ist und ein anderer Thread die Abort-Methode für diesen Thread aufruft, befindet er sich gleichzeitig im Zustand WaitSleepJoin und im Zustand AbortRequested.

Ändern von Threadstatuswerten

Sobald ein Thread gestartet wurde, können Sie seine Methoden aufrufen, um den Status zu ändern. Beispielsweise können Sie durch den Aufruf von Thread.Sleep einen Thread für eine festgelegte Anzahl von Millisekunden anhalten. Die Sleep-Methode akzeptiert als Parameter ein Timeout, bei dem es sich um die Anzahl der Millisekunden handelt, für die der Thread blockiert bleibt.

Durch den Aufruf von Sleep mit dem Argument Infinite wird ein Thread so lange deaktiviert, bis er durch einen anderen Thread, der Interrupt aufruft, unterbrochen wird. Die Interrupt-Methode beendet jeden Ruhezustand des Zielthreads und löst eine Ausnahme aus.

Ein Thread kann auch durch den Aufruf von Suspend angehalten werden. Wenn ein Thread Suspend für sich selbst aufruft, wird er so lange blockiert, bis ihn ein anderer Thread durch den Aufruf von Resume fortsetzt. Wenn ein Thread Suspend für einen anderen Thread aufruft, handelt es sich um einen nicht blockierenden Aufruf, durch den der andere Thread angehalten wird. Durch Aufrufen von Resume wird der Ruhezustand eines weiteren Threads beendet, und die Ausführung des Threads wird fortgesetzt. Im Gegensatz zu Sleep beendet Suspend einen Thread nicht sofort. Der betreffende Thread wird erst dann angehalten, wenn die Common Language Runtime feststellt, dass ein sicherer Punkt erreicht wurde.

Die Abort-Methode beendet einen aktiven Thread, indem sie eine ThreadAbortException-Ausnahme auslöst, die die Zerstörung des Threads verursacht.

Ausführliche Informationen über diese Methoden finden Sie unter Thread.

Siehe auch

Konzepte

Multithreadanwendungen

Threadsynchronisierung

Parameter und Rückgabewerte für Multithreadprozeduren

Multithreading bei Formularen und Steuerelementen

Delegaten und der AddressOf-Operator

Referenz

System.Threading

SyncLock-Anweisung

Weitere Ressourcen

Multithreading in Komponenten