ThreadState Enumeration
TOC
Inhaltsverzeichnis reduzieren
Inhaltsverzeichnis erweitern
Dieser Artikel wurde maschinell übersetzt. Wenn Sie die englische Version des Artikels anzeigen möchten, aktivieren Sie das Kontrollkästchen Englisch. Sie können den englischen Text auch in einem Popupfenster anzeigen, indem Sie den Mauszeiger über den Text bewegen.
Übersetzung
Englisch

ThreadState-Enumeration

 

Gibt die Ausführungszustände von einem Thread.

Diese Enumeration verfügt über ein FlagsAttribute-Attribut, das die bitweise Kombination der Memberwerte zulässt.

Namespace:   System.Threading
Assembly:  mscorlib (in mscorlib.dll)

[SerializableAttribute]
[FlagsAttribute]
[ComVisibleAttribute(true)]
public enum ThreadState

MembernameBeschreibung
Aborted

Der Threadzustand schließt AbortRequested und der Thread ist jetzt deaktiviert, aber der Zustand hat noch nicht geändert Stopped.

AbortRequested

Die Thread.Abort -Methode wurde für den Thread aufgerufen, aber der Thread wurde noch nicht empfangen die ausstehenden System.Threading.ThreadAbortException versucht, die ihn zu beenden.

Background

Der Thread wird als ein Hintergrundthread, im Gegensatz zu Vordergrundthread ausgeführt. Dieser Status wird gesteuert durch Festlegen der Thread.IsBackground Eigenschaft.

Running

Der Thread wurde gestartet, er wird nicht blockiert und gibt es keine ausstehenden ThreadAbortException.

Stopped

Der Thread wurde beendet.

StopRequested

Wird eine Anforderung zum Beenden des Threads. Dies ist nur zur internen Verwendung.

Suspended

Der Thread wurde angehalten.

SuspendRequested

Wird eine Anforderung zum Anhalten des Threads.

Unstarted

Die Thread.Start -Methode wurde für den Thread nicht aufgerufen.

WaitSleepJoin

Der Thread ist blockiert. Das Ergebnis des Aufrufs möglicherweise Thread.Sleep oder Thread.Join, dass eine Sperre angefordert – z. B. durch Aufrufen von Monitor.Enter oder Monitor.Wait – oder auf ein Threadsynchronisierungsobjekt darauf warten, z. B. ManualResetEvent.

Die ThreadState Enumeration ist von Interesse sind nur in einigen Debugszenarios. Der Code sollte nie anhand den Zustand des Threads die Aktivitäten von Threads synchronisieren.

ThreadState definiert einen Satz aller möglichen Ausführungszustände für Threads. Sobald ein Thread erstellt wurde, ist es in mindestens einem der Zustände, bis er beendet wird. Innerhalb der common Language Runtime erstellte Threads befinden sich anfangs im der Unstarted Zustand, während in die Runtime eintretende externe Threads befinden sich bereits in der Running Zustand. Ein Unstarted Thread Spiegels der Running Zustand durch Aufrufen von Start. Nicht alle Kombinationen von ThreadState Werte sind gültig; z. B. ein Thread kann sowohl die Aborted und Unstarted Zustände.

System_CAPS_importantWichtig

Es gibt zwei ThreadzustandsenumerationenSystem.Threading.ThreadState und System.Diagnostics.ThreadState.

Die folgende Tabelle zeigt die Aktionen, die dazu führen, eine Änderung des Status dass.

Aktion

ThreadState

Ein Thread wird innerhalb der common Language Runtime erstellt.

Nicht angefangene

Ein anderer Thread Ruft die Thread.Start -Methode der neue Thread, und der Aufruf zurückgibt.

Die Start Methode gibt keinen zurück, bis der neue Thread gestartet wurde. Es gibt keine Möglichkeit zu wissen, an welchem Punkt der neue Thread gestartet wird ausgeführt, während des Aufrufs von Start.

Wird ausgeführt

Die threadaufrufe Sleep

WaitSleepJoin

Der Thread ruft Wait auf einem anderen Objekt.

WaitSleepJoin

Der Thread ruft Join in einem anderen Thread.

WaitSleepJoin

Ein anderer Thread Ruft Interrupt

Wird ausgeführt

Ein anderer Thread Ruft Suspend

SuspendRequested

Der Thread reagiert auf eine Suspend Anforderung.

Angehalten

Ein anderer Thread Ruft Resume

Wird ausgeführt

Ein anderer Thread Ruft Abort

Status AbortRequested

Der Thread reagiert auf eine Abort Anforderung.

Beendet

Ein Thread wird beendet.

Beendet

Neben den oben aufgeführten Zuständen, es ist auch die Background Zustand, der angibt, ob der Thread im Hintergrund oder im Vordergrund ausgeführt wird.

Ein Thread kann zu einem bestimmten Zeitpunkt in mehreren Zuständen befinden. Beispielsweise, wenn ein Thread blockiert ist, bei einem Aufruf von Wait, und ein anderer Thread ruft Abort für den blockierten Thread, werden sowohl der blockierte Thread die WaitSleepJoin und die AbortRequested Zustände gleichzeitig. In diesem Fall wird, sobald der Thread aus dem Aufruf zurückgegeben Wait oder unterbrochen wird, erhält er die ThreadAbortException Abbrechen soll.

Die Thread.ThreadState -Eigenschaft eines Threads stellt den aktuellen Zustand eines Threads bereit. Anwendungen müssen eine Bitmaske verwenden, um zu bestimmen, ob ein Thread ausgeführt wird. Da der Wert für Running ist 0 (null), zu testen, ob ein Thread ausgeführt wird, mithilfe von C#-Code wie z. B. (myThread.ThreadState & (ThreadState.Stopped | ThreadState.Unstarted)) == 0 oder Visual Basic-Code, z. B. (myThread.ThreadState And (ThreadState.Stopped Or ThreadState.Unstarted)) = 0.

Universal Windows Platform
Verfügbar seit 10
.NET Framework
Verfügbar seit 1.1
Silverlight
Verfügbar seit 2.0
Windows Phone Silverlight
Verfügbar seit 7.0
Zurück zum Anfang
Anzeigen:
© 2016 Microsoft