Freigeben über


System.Threading Namespace

Stellt Klassen und Schnittstellen bereit, die Multithreading-Programmierung ermöglichen. Neben den Klassen zum Synchronisieren von Threadaktivitäten und Datenzugriff (Mutex, Monitor, Interlocked, AutoResetEvent usw.) enthält dieser Namespace eine ThreadPool-Klasse, die die Verwendung eines Pools von Systemthreads ermöglicht, und eine Timer-Klasse, die Rückrufmethoden für Threads des Threadpools ausführt.

Klassen

AbandonedMutexException

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

AsyncLocal<T>

Stellt Umgebungsdaten dar, die für eine angegebene asynchrone Ablaufsteuerung lokal sind, wie etwa eine asynchrone Methode.

AutoResetEvent

Stellt ein Threadsynchronisierungsereignis dar, das bei Signalisierung einen einzelnen wartenden Thread freigibt und dann automatisch zurückgesetzt wird. 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 ausgelöst wird.

CancellationTokenSource

Signalisiert einem CancellationToken, dass es abgebrochen werden soll.

CompressedStack

Stellt Methoden zum Festlegen und Erfassen des komprimierten Stapels für den aktuellen Thread bereit. Diese Klasse kann nicht vererbt werden.

CountdownEvent

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

EventWaitHandle

Stellt ein Threadsynchronisierungsereignis dar.

EventWaitHandleAcl

Bietet eine Windows-spezifische Erweiterungsmethode zum Erstellen von EventWaitHandle-Objekten mit spezifischer ACL-Sicherheit (Access Control List, Zugriffssteuerungsliste).

ExecutionContext

Verwaltet den Ausführungskontext für den aktuellen Thread. Diese Klasse kann nicht vererbt werden.

HostExecutionContext

Kapselt den Hostausführungskontext und gibt ihn threadübergreifend weiter.

HostExecutionContextManager

Stellt die Funktionen bereit, über die ein Host der Common Language Runtime am Fluss teilnehmen oder der Ausführungskontext migriert werden kann.

Interlocked

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

LazyInitializer

Stellt verzögerte Initialisierungsroutinen bereit.

Lock

Stellt einen Mechanismus zum erreichen gegenseitigen Ausschluss in Codebereichen zwischen verschiedenen Threads bereit.

LockRecursionException

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

ManualResetEvent

Stellt ein Threadsynchronisierungsereignis dar, das bei Signalisierung manuell zurückgesetzt werden muss. Diese Klasse kann nicht vererbt werden.

ManualResetEventSlim

Stellt ein Threadsynchronisierungsereignis dar, das bei Signalisierung manuell zurückgesetzt werden muss. Diese Klasse ist eine einfache Alternative zu ManualResetEvent.

Monitor

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

Mutex

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

MutexAcl

Bietet eine Windows-spezifische Erweiterungsmethode zum Erstellen von Mutex-Objekten mit spezifischer ACL-Sicherheit (Access Control List, Zugriffssteuerungsliste).

Overlapped

Bietet eine verwaltete Darstellung einer Win32-OVERLAPPED-Struktur, einschließlich Methoden zum Übertragen von Informationen aus einer Overlapped-Instanz in eine NativeOverlapped-Struktur.

PeriodicTimer

Stellt einen regelmäßigen Timer bereit, der das asynchrone Warten auf Zeitgebertakte ermöglicht.

PreAllocatedOverlapped

Stellt den Zustand vor der Zuweisung für native überlappende E/-A-Vorgänge dar.

ReaderWriterLock

Definiert eine Sperre, die einen Writer und mehrere Reader unterstützt.

ReaderWriterLockSlim

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

RegisteredWaitHandle

Stellt ein Handle dar, das beim Aufruf von RegisterWaitForSingleObject(WaitHandle, WaitOrTimerCallback, Object, UInt32, Boolean) registriert wurde. Diese Klasse kann nicht vererbt werden.

Semaphore

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

SemaphoreAcl

Bietet eine Windows-spezifische Erweiterungsmethode zum Erstellen von Semaphore-Objekten mit spezifischer ACL-Sicherheit (Access Control List, Zugriffssteuerungsliste).

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 Semaphore, die die Anzahl der Threads beschränkt, die gleichzeitig auf eine Ressource oder einen Ressourcenpool zugreifen können.

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.

Thread

Erstellt und steuert einen Thread, legt dessen Priorität fest und ruft den Status ab.

ThreadAbortException

Die Ausnahme, die bei einem Aufruf der Abort(Object)-Methode ausgelöst wird. Diese Klasse kann nicht vererbt werden.

ThreadExceptionEventArgs

Stellt Daten für das ThreadException-Ereignis bereit.

ThreadingAclExtensions

Stellt Windows-spezifische Erweiterungsmethoden zum Verwalten der Sicherheitsbeschreibungen von Zugriffssteuerungslisten (ACL) für EventWaitHandle, Mutex und Semaphore bereit.

ThreadInterruptedException

Die Ausnahme, die ausgelöst wird, wenn ein Thread im Wartezustand unterbrochen wird.

ThreadLocal<T>

Stellt Thread-lokalen Datenspeicher bereit.

ThreadPool

Stellt einen Threadpool bereit, der verwendet werden kann, um Aufgaben auszuführen, Arbeitselemente bereitzustellen, asynchrone E/A zu verarbeiten, im Auftrag anderer Threads zu warten und Zeitgeber zu verarbeiten.

ThreadPoolBoundHandle

Stellt ein E/A-Handle dar, das an den Threadpool des Systems gebunden ist und Komponenten auf niedriger Ebene ermöglicht, Benachrichtigungen asynchroner E/A-Operationen zu empfangen.

ThreadStartException

Die Ausnahme, die ausgelöst wird, wenn ein Fehler in einem verwalteten Thread auftritt, nachdem der Thread des zugrunde liegenden Betriebssystems gestartet wurde, jedoch bevor der Thread bereit ist, Benutzercode auszuführen.

ThreadStateException

Die Ausnahme, die ausgelöst wird, wenn sich ein Thread in einem für den Methodenaufruf ungültigen ThreadState befindet.

Timeout

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

Timer

Stellt einen Mechanismus zum Ausführen einer Methode für einen Threadpoolthread in angegebenen Intervallen bereit. 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, ein nicht vorhandenes Systemmutex, Semaphor oder Wait-Handle eines Ereignisses zu öffnen.

WaitHandleExtensions

Stellt Hilfsmethoden für die Arbeit mit einem sicheren Handle für ein Wait-Handle bereit.

Strukturen

AsyncFlowControl

Stellt die Funktionen zum Wiederherstellen der Migration oder des Flusses des Ausführungskontexts zwischen Threads bereit.

AsyncLocalValueChangedArgs<T>

Die Klasse, die AsyncLocal<T>-Instanzen, die sich für Änderungsbenachrichtigungen registrieren, Informationen über Datenänderungen zur Verfügung stellt.

CancellationToken

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

CancellationTokenRegistration

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

Lock.Scope

Stellt eine Lock dar, die eingegeben wurde.

LockCookie

Definiert die Sperre, die die Semantik für einen Writer und mehrere Reader implementiert. Dies ist ein Werttyp.

NativeOverlapped

Stellt ein explizites Layout bereit, das im nicht verwalteten Code sichtbar ist und über dasselbe Layout verfügt, wie die Win32-OVERLAPPED-Struktur mit zusätzlichen reservierten Felder am Ende.

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.

Schnittstellen

IThreadPoolWorkItem

Stellt ein Arbeitselement dar, das vom ThreadPool ausgeführt werden kann.

ITimer

Stellt einen Timer dar, dessen Fälligkeitszeit und -zeitraum geändert werden können.

Enumerationen

ApartmentState

Gibt den Apartmentzustand eines Thread an.

EventResetMode

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

LazyThreadSafetyMode

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

LockRecursionPolicy

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

ThreadPriority

Gibt die Planungspriorität eines Thread an.

ThreadState

Gibt die Ausführungszustände eines Thread an.

Delegaten

ContextCallback

Stellt eine Methode dar, die in einem neuen Kontext aufgerufen wird.

IOCompletionCallback

Empfängt beim Abschluss einer E/A-Operation im Threadpool den Fehlercode, die Anzahl der Bytes sowie den überlappenden Werttyp.

ParameterizedThreadStart

Stellt die Methode dar, die in einem Thread ausgeführt wird.

SendOrPostCallback

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

ThreadExceptionEventHandler

Stellt die Methode dar, die das ThreadException-Ereignis eines Application behandelt.

ThreadStart

Stellt die Methode dar, die in einem Thread ausgeführt wird.

TimerCallback

Stellt die Methode dar, die Aufrufe von einem Timer behandelt.

WaitCallback

Stellt die Rückrufmethode dar, die von einem Thread des Threadpools ausgeführt werden soll.

WaitOrTimerCallback

Stellt eine Methode dar, die aufgerufen werden soll, wenn ein Signal an ein WaitHandle gesendet wird oder dessen Timeout überschritten ist.