Freigeben über


System.Threading-Namespaces

Die Namespaces System.Threading, System.Threading.Tasks und System.Threading.Tasks.DataFlow enthalten Typen, die Multithreading-Programmierung ermöglichen und das Schreiben von nebenläufigem und asynchronem Code vereinfachen.

In diesem Thema werden die Typen vorgestellt, die in den Namespaces System.Threading, System.Threading.Tasks und System.Threading.Tasks.DataFlow aus .NET für Windows Store-Apps enthalten sind, oder die installiert und verwendet werden können, um Windows Store-Anwendungen zu erstellen. Beachten Sie, dass .NET für Windows Store-Apps nicht alle Member jeden Typs einschließt. Informationen zu einzelnen Typen finden Sie in den verknüpften Themen. Die Dokumentation für einen Typ gibt an, welche Member in .NET für Windows Store-Apps enthalten sind.

Um den System.Threading.Tasks.Dataflow-Namespace zu installieren, öffnen Sie ihr Projekt in Visual Studio 2012, wählen NuGet-Pakete verwalten aus dem Menü Projekt, und suchen online nach dem Microsoft.Tpl.Dataflow-Paket.

System.Threading-Namespace

In .NET für Windows Store-Apps unterstützte Typen

Beschreibung

AbandonedMutexException

Die Ausnahme, die ausgelöst wird, wenn ein Thread ein Mutex-Objekt abruft, das von einem anderen Thread abgebrochen, aber beim Verlassen nicht freigegeben wurde.

AutoResetEvent

Benachrichtigt einen wartenden Thread über das Eintreten eines Ereignisses. Diese Klasse kann nicht vererbt werden.

Barrier

Ermöglicht es mehreren Aufgaben, parallel über mehrere Phasen gemeinsam an einem Algorithmus zu arbeiten.

BarrierPostPhaseException

Die Ausnahme, die bei einem Fehler der Nachphasenaktion einer Barrier-Klasse ausgelöst wird.

CancellationToken

Gibt eine Benachrichtigung darüber weiter, dass Vorgänge abgebrochen werden sollen.

CancellationTokenRegistration

Stellt einen Rückrufdelegaten dar, der mit einem CancellationToken registriert wurde.

CancellationTokenSource

Signalisiert einem CancellationToken, dass es abgebrochen werden soll.

CountdownEvent

Stellt einen Synchronisierungsprimitiven dar, dem signalisiert wird, wenn sein Zähler 0 (null) erreicht.

EventResetMode

Gibt an, ob eine EventWaitHandle-Klasse nach dem Empfang eines Signals automatisch oder manuell zurückgesetzt wird.

EventWaitHandle

Stellt ein Threadsynchronisierungsereignis dar.

Interlocked

Stellt atomare Vorgänge für Variablen bereit, die von mehreren Threads gemeinsam genutzt werden.

LazyInitializer

Stellt verzögerte Initialisierungsroutinen bereit.

LazyThreadSafetyMode

Gibt an, wie eine Lazy<T>-Instanz den Zugriff bei mehreren Threads synchronisiert.

LockRecursionException

Die Ausnahme, die ausgelöst wird, wenn das rekursive Erreichen einer Sperre nicht mit der Rekursionsrichtlinie der Sperre kompatibel ist.

LockRecursionPolicy

Gibt an, ob eine Sperre mehrmals dem gleichen Thread zugewiesen werden kann.

ManualResetEvent

Benachrichtigt einen oder mehrere wartende Threads über das Eintreten eines Ereignisses. Diese Klasse kann nicht vererbt werden.

ManualResetEventSlim

Stellt eine verschlankte Version von ManualResetEvent bereit.

Monitor

Stellt einen Mechanismus bereit, der den Zugriff auf Objekte synchronisiert.

Mutex

Ein Synchronisierungsprimitiver, der auch für die prozessübergreifende Synchronisierung verwendet werden kann.

ReaderWriterLockSlim

Stellt eine Sperre dar, mit der der Zugriff auf eine Ressource verwaltet wird. Mehrere Threads können damit Lesezugriff oder exklusiven Schreibzugriff erhalten.

Semaphore

Schränkt die Anzahl von Threads ein, die gleichzeitig auf eine Ressource oder einen Pool von Ressourcen zugreifen können.

SemaphoreFullException

Diese Ausnahme wird ausgelöst, wenn die Release-Methode für einen Semaphore aufgerufen wird, dessen Zähler bereits den Maximalwert erreicht hat.

SemaphoreSlim

Eine einfache Alternative zu Semaphoren, die die Anzahl von Threads beschränkt, die gleichzeitig auf eine Ressource oder einen Ressourcenpool zugreifen können.

SendOrPostCallback

Stellt eine Methode dar, die aufgerufen werden muss, wenn eine Nachricht an einen Synchronisierungskontext gesendet werden soll.

SpinLock

Stellt einen Mutex-Sperrprimitiven bereit, wobei ein Thread, der versucht, die Sperre abzurufen, in einer Schleife wartet, die laufend prüft, ob die Sperre verfügbar wird.

SpinWait

Stellt Unterstützung für Spin-basierte Wartevorgänge bereit.

SynchronizationContext

Stellt die Basisfunktionen für die Weitergabe eines Synchronisierungskontexts in unterschiedlichen Synchronisierungsmodellen bereit.

SynchronizationLockException

Die Ausnahme, die ausgelöst wird, wenn der Aufrufer einer Methode über die Sperre für einen bestimmten Monitor verfügen muss und die Methode von einem Aufrufer aufgerufen wird, der nicht über diese Sperre verfügt.

ThreadLocal<T>

Stellt Thread-lokalen Datenspeicher bereit.

Timeout

Enthält Konstanten, die infinite Timeoutintervalle angeben. Diese Klasse kann nicht vererbt werden.

Volatile

Enthält Methoden zum Ausführen von flüchtigen Speichervorgängen.

WaitHandle

Kapselt betriebssystemspezifische Objekte, die auf exklusiven Zugriff auf gemeinsam genutzte Ressourcen warten.

WaitHandleCannotBeOpenedException

Diese Ausnahme wird bei dem Versuch ausgelöst, einen Systemmutex oder einen Semaphore zu öffnen.

System.Threading.Tasks-Namespace

In .NET für Windows Store-Apps unterstützte Typen

Beschreibung

ConcurrentExclusiveSchedulerPair

Stellt nebenläufige und exklusive Taskplaner bereit, die auszuführende Aufgaben koordinieren, während sie sicherstellen, dass nur nebenläufige Aufgaben gleichzeitig ausgeführt werden, exklusive Aufgaben jedoch nicht.

Parallel

Stellt Unterstützung für parallele Schleifen und Bereiche bereit.

ParallelLoopResult

Gibt den Ausführungstatus bei der Ausführung einer parallelen Schleife an.

ParallelLoopState

Ermöglicht Iterationen von Parallel-Schleifen die Interaktion mit anderen Iterationen. Eine Instanz dieser Klasse wird von der Parallel-Klasse für jede Schleife bereitgestellt. Sie können keine Instanzen im Benutzercode erstellen.

ParallelOptions

Speichert Optionen, die die Ausführung von Methoden der Parallel-Klasse konfigurieren.

Task

Stellt einen asynchronen Vorgang dar.

Task<TResult>

Stellt einen asynchronen Vorgang dar, der einen Wert zurückgeben kann.

TaskCanceledException

Stellt eine Ausnahme dar, die verwendet wurde, um einen Taskabbruch mitzuteilen.

TaskCompletionSource<TResult>

Stellt die Producerseite einer Task<TResult> dar, die nicht an einen Delegaten gebunden ist, und bietet Zugriff auf die Consumerseite durch die TaskCompletionSource<T>.Task-Eigenschaft.

TaskContinuationOptions

Gibt das Verhalten für eine Aufgabe an, die mit der ContinueWith- oder der Task<T>.ContinueWith-Methode erstellt wurde.

TaskCreationOptions

Gibt Flags an, die optionales Verhalten für die Erstellung und Ausführung von Aufgaben steuern.

TaskExtensions

Stellt einen Satz statischer (Shared in Visual Basic) Methoden für die Arbeit mit bestimmten Arten von Task-Instanzen bereit.

TaskFactory

Stellt Unterstützung für das Erstellen und Planen von Task-Objekten bereit.

TaskFactory<TResult>

Stellt Unterstützung für das Erstellen und Planen von Task<T>-Objekten bereit.

TaskScheduler

Stellt ein Objekt dar, das die Einreihung von Aufgaben in Threads auf niedriger Ebene behandelt.

TaskSchedulerException

Stellt eine Ausnahme dar, die verwendet wird, um einen ungültigen Vorgang eines TaskScheduler mitzuteilen.

TaskStatus

Stellt die aktuelle Phase im Lebenszyklus einer Aufgabe dar.

UnobservedTaskExceptionEventArgs

Stellt Daten für das Ereignis bereit, das ausgelöst wird, wenn die Ausnahme einer fehlerhaften Aufgabe nicht beachtet wird.

System.Threading.Tasks.DataFlow-Namespace

Zum Installieren des System.Threading.Tasks.Dataflow-Namespace öffnen Sie Ihr Projekt in Visual Studio 2012, wählen NuGet-Pakete verwalten aus dem Menü Project und suchen anschließend online nach dem Microsoft.Tpl.Dataflow-Paket.

In .NET für Windows Store-Apps unterstützte Typen

Beschreibung

ActionBlock<TInput>

Stellt einen Datenflussblock bereit, der einen bereitgestellten Action<T>-Delegaten für jedes empfangene Datenelement aufruft.

BatchBlock<T>

Stellt einen Datenflussblock bereit, der Eingaben in Arrays stapelt.

BatchedJoinBlock<T1, T2>

Stellt einen Datenflussblock bereit, der eine festgelegte Anzahl von Eingaben mit möglicherweise unterschiedlichen Typen stapelt, die mindestens einem seiner Ziele bereitgestellt werden.

BatchedJoinBlock<T1, T2, T3>

Stellt einen Datenflussblock bereit, der eine festgelegte Anzahl von Eingaben mit möglicherweise unterschiedlichen Typen stapelt, die mindestens einem seiner Ziele bereitgestellt werden.

BroadcastBlock<T>

Stellt einen Puffer bereit, der nur ein Element speichern kann, wodurch jede Meldung von einer folgenden überschrieben wird. Meldungen werden an alle verknüpften Ziele übermittelt, die alle einen Klon der Nachricht nutzen können.

BufferBlock<T>

Stellt einen Puffer zum Speichern von Daten bereit.

DataflowBlock

Stellt einen Satz mit statischen (Shared in Visual Basic) Methoden für die Arbeit mit Datenflussblöcken bereit.

DataflowBlockOptions

Stellt Optionen bereit, mit denen die Verarbeitung konfiguriert wird, die von Datenflussblöcken ausgeführt wird.

DataflowLinkOptions

Stellt die Optionen bereit, die verwendet werden, um einen Link zwischen Datenflussblöcken zu konfigurieren.

DataflowMessageHeader

Stellt einen Container mit Datenattributen für die Übergabe zwischen Datenflussblöcken bereit.

DataflowMessageStatus

Stellt den Status von einem DataflowMessageHeader bei der Übergabe zwischen Datenflussblöcken dar.

ExecutionDataflowBlockOptions

Stellt Optionen bereit, die verwendet werden, um die Verarbeitung zu konfigurieren, die von Datenflussblöcken ausgeführt wird, die jede Meldung durch den Aufruf eines vom Benutzer bereitgestellten Delegaten verarbeiten. Diese sind Datenflussblöcke wie ActionBlock<TInput> und TransformBlock<TInput, TOutput>.

GroupingDataflowBlockOptions

Stellt Optionen bereit, die verwendet werden, um die Verarbeitung zu konfigurieren, die von Datenflussblöcken ausgeführt wird, die mehrere Nachrichten gruppieren. Diese sind Datenflussblöcke wie JoinBlock<T1, T2> und BatchBlock<T>.

IDataflowBlock

Stellt einen Datenflussblock dar.

IPropagatorBlock<TInput, TOutput>

Stellt einen Datenflussblock dar, der ein Ziel für Daten und eine Quelle von Daten ist.

IReceivableSourceBlock<TOutput>

Stellt einen Datenflussblock dar, der das Empfangen von Meldungen unterstützt, ohne zu verknüpfen.

ISourceBlock<TOutput>

Stellt einen Datenflussblock dar, der eine Datenquelle darstellt.

ITargetBlock<TInput>

Stellt einen Datenflussblock dar, der ein Ziel für Daten ist.

JoinBlock<T1, T2>

Stellt einen Datenflussblock bereit, der sich über mehrere Datenflussquellen verbindet, die nicht unbedingt desselben Typs sind. Der Datenflussblock wartet auf ein ankommendes Element für jeden Typ, bevor sie alle zusammen als Tupel freigegeben werden, das ein Element pro Typ enthält.

JoinBlock<T1, T2, T3>

Stellt einen Datenflussblock bereit, der sich über mehrere Datenflussquellen verbindet, die nicht unbedingt desselben Typs sind. Der Datenflussblock wartet auf ein ankommendes Element für jeden Typ, bevor sie alle zusammen als Tupel freigegeben werden, das ein Element pro Typ enthält.

TransformBlock<TInput, TOutput>

Stellt einen Datenflussblock bereit, der einen bereitgestellten Func<T, TResult>-Delegaten für jedes empfangene Datenelement aufruft.

TransformManyBlock<TInput, TOutput>

Stellt einen Datenflussblock bereit, der einen bereitgestellten Func<T, TResult>-Delegaten für jedes empfangene Datenelement aufruft.

WriteOnceBlock<T>

Stellt einen Puffer für das Empfangen und Speichern von höchstens einem Element in einem Netzwerk von Datenflussblöcken bereit.

Siehe auch

Konzepte

.NET für Windows Store-Apps – unterstützte APIs