System.Threading Namespace
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Stellt Klassen und Schnittstellen bereit, die die Multithread-Programmierung ermöglichen. Zusätzlich zu Klassen zum Synchronisieren von Threadaktivitäten und zugriff auf Daten (, , , usw.) enthält dieser Namespace eine Mutex Klasse, mit der Sie einen Pool von vom System bereitgestellten Threads verwenden können, und eine Monitor Klasse, die Rückrufmethoden für Threadpoolthreads ausführt. InterlockedAutoResetEventThreadPoolTimer
Klassen
| Name | Beschreibung |
|---|---|
| AbandonedMutexException |
Die Ausnahme, die ausgelöst wird, wenn ein Thread ein Mutex Objekt erhält, das ein anderer Thread verlassen hat, indem er beendet wird, ohne ihn freizugeben. |
| AsyncLocal<T> |
Stellt Umgebungsdaten dar, die für einen bestimmten asynchronen Steuerungsfluss lokal sind, z. B. eine asynchrone Methode. |
| AutoResetEvent |
Stellt ein Threadsynchronisierungsereignis dar, das, wenn signalisiert, einen einzelnen Wartethread loslässt und dann automatisch zurückgesetzt wird. Diese Klasse kann nicht vererbt werden. |
| Barrier |
Ermöglicht es mehreren Aufgaben, kooperativ an einem Algorithmus parallel über mehrere Phasen zu arbeiten. |
| BarrierPostPhaseException |
Die Ausnahme, die ausgelöst wird, wenn die Aktion nach der Phase eines Barrier Fehlers auftritt. |
| CancellationTokenSource |
Signalisiert, CancellationToken dass es abgebrochen werden soll. |
| CompressedStack |
Stellt Methoden zum Festlegen und Erfassen des komprimierten Stapels im aktuellen Thread bereit. Diese Klasse kann nicht vererbt werden. |
| CountdownEvent |
Stellt einen Synchronisierungsgrundtyp dar, der signalisiert wird, wenn die Anzahl null erreicht. |
| EventWaitHandle |
Stellt ein Threadsynchronisierungsereignis dar. |
| ExecutionContext |
Verwaltet den Ausführungskontext für den aktuellen Thread. Diese Klasse kann nicht vererbt werden. |
| HostExecutionContext |
Kapselt und verteilt den Hostausführungskontext über Threads hinweg. |
| HostExecutionContextManager |
Stellt die Funktionalität bereit, die es einem Host für common language runtime ermöglicht, am Ablauf oder der Migration des Ausführungskontexts teilzunehmen. |
| Interlocked |
Stellt Atomvorgänge für Variablen bereit, die von mehreren Threads gemeinsam verwendet werden. |
| LazyInitializer |
Stellt faule Initialisierungsroutinen bereit. |
| LockRecursionException |
Die Ausnahme, die ausgelöst wird, wenn rekursive Eingabe in eine Sperre nicht mit der Rekursionsrichtlinie für die Sperre kompatibel ist. |
| ManualResetEvent |
Stellt ein Threadsynchronisierungsereignis dar, das bei signalisierter Signalisierung manuell zurückgesetzt werden muss. Diese Klasse kann nicht vererbt werden. |
| ManualResetEventSlim |
Stellt ein Threadsynchronisierungsereignis dar, das bei signalisierter 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 Synchronisierungsgrundtyp, der auch für die Interprocesssynchronisierung verwendet werden kann. |
| Overlapped |
Stellt eine verwaltete Darstellung einer Win32-Struktur |
| PreAllocatedOverlapped |
Stellt den vorab zugewiesenen Zustand für systemeigene überlappende E/A-Vorgänge dar. |
| ReaderWriterLock |
Definiert eine Sperre, die einzelne Autoren und mehrere Leser unterstützt. |
| ReaderWriterLockSlim |
Stellt eine Sperre dar, die zum Verwalten des Zugriffs auf eine Ressource verwendet wird, sodass mehrere Threads zum Lesen oder exklusiven Zugriff zum Schreiben zugelassen werden. |
| RegisteredWaitHandle |
Stellt ein Handle dar, das beim Aufrufen RegisterWaitForSingleObject(WaitHandle, WaitOrTimerCallback, Object, UInt32, Boolean)registriert wurde. Diese Klasse kann nicht vererbt werden. |
| Semaphore |
Beschränkt die Anzahl der Threads, die gleichzeitig auf eine Ressource oder einen Pool von Ressourcen zugreifen können. |
| SemaphoreFullException |
Die Ausnahme, die ausgelöst wird, wenn die Release Methode für ein Semaphor aufgerufen wird, dessen Anzahl bereits am Maximum liegt. |
| SemaphoreSlim |
Stellt eine einfache Alternative zu Semaphore dieser Beschränkung der Anzahl von Threads dar, die gleichzeitig auf eine Ressource oder einen Pool von Ressourcen zugreifen können. |
| SynchronizationContext |
Stellt die grundlegenden Funktionen zum Verteilen eines Synchronisierungskontexts in verschiedenen Synchronisierungsmodellen bereit. |
| SynchronizationLockException |
Die Ausnahme, die ausgelöst wird, wenn die Methode erfordert, dass der Aufrufer die Sperre für einen bestimmten Monitor besitzt, und die Methode wird von einem Aufrufer aufgerufen, der diese Sperre nicht besitzt. |
| Thread |
Erstellt und steuert einen Thread, legt seine Priorität fest und ruft seinen Status ab. |
| ThreadAbortException |
Die Ausnahme, die ausgelöst wird, wenn ein Aufruf der Abort(Object) Methode ausgeführt wird. Diese Klasse kann nicht vererbt werden. |
| ThreadExceptionEventArgs |
Stellt Daten für das ThreadException-Ereignis bereit. |
| ThreadInterruptedException |
Die Ausnahme, die ausgelöst wird, wenn eine Thread Unterbrechung während des Wartens auftritt. |
| ThreadLocal<T> |
Stellt threadlokale Speicherung von Daten bereit. |
| ThreadPool |
Stellt einen Pool von Threads bereit, mit denen Aufgaben ausgeführt werden können, Arbeitsaufgaben posten, asynchrone E/A-Vorgänge verarbeiten, im Auftrag anderer Threads warten und Zeitgeber verarbeiten können. |
| ThreadPoolBoundHandle |
Stellt ein E/A-Handle dar, das an den Systemthreadpool gebunden ist, und ermöglicht es Komponenten auf niedriger Ebene, Benachrichtigungen für asynchrone E/A-Vorgänge zu empfangen. |
| ThreadStartException |
Die Ausnahme, die ausgelöst wird, wenn ein Fehler in einem verwalteten Thread auftritt, nachdem der zugrunde liegende Betriebssystemthread gestartet wurde, aber bevor der Thread zum Ausführen von Benutzercode bereit ist. |
| ThreadStateException |
Die Ausnahme, die ausgelöst wird, wenn ein Thread Fehler für den Methodenaufruf ungültig ThreadState ist. |
| Timeout |
Enthält Konstanten, die unendliche Timeoutintervalle angeben. Diese Klasse kann nicht vererbt werden. |
| Timer |
Stellt einen Mechanismus zum Ausführen einer Methode in einem Threadpoolthread in bestimmten Intervallen bereit. Diese Klasse kann nicht vererbt werden. |
| Volatile |
Enthält Methoden zum Ausführen von veränderliche Speichervorgängen. |
| WaitHandle |
Kapselt betriebssystemspezifische Objekte, die auf exklusiven Zugriff auf freigegebene Ressourcen warten. |
| WaitHandleCannotBeOpenedException |
Die Ausnahme, die ausgelöst wird, wenn versucht wird, ein Systemmutex, Semaphor oder Ereignis-Handle zu öffnen, das nicht vorhanden ist. |
| WaitHandleExtensions |
Bietet Komfortmethoden für das Arbeiten mit einem sicheren Handle für einen Wartepunkt. |
Strukturen
| Name | Beschreibung |
|---|---|
| AsyncFlowControl |
Stellt die Funktionalität zum Wiederherstellen der Migration oder des Flusses des Ausführungskontexts zwischen Threads bereit. |
| AsyncLocalValueChangedArgs<T> |
Die Klasse, die Datenänderungsinformationen für AsyncLocal<T> Instanzen bereitstellt, die sich für Änderungsbenachrichtigungen registrieren. |
| CancellationToken |
Gibt die Benachrichtigung an, dass Vorgänge abgebrochen werden sollen. |
| CancellationTokenRegistration |
Stellt einen Rückrufdelegat dar, der bei einem CancellationToken. |
| LockCookie |
Definiert die Sperre, die single-writer/multiple-reader semantics implementiert. Dies ist ein Werttyp. |
| NativeOverlapped |
Stellt ein explizites Layout bereit, das im nicht verwalteten Code sichtbar ist und das dasselbe Layout wie die Win32 OVERLAPPED-Struktur mit zusätzlichen reservierten Feldern am Ende aufweist. |
| SpinLock |
Stellt einen grundtyp für die gegenseitige Ausschlusssperre bereit, bei dem ein Thread, der versucht, die Sperre abzurufen, wiederholt in einer Schleife wartet, bis die Sperre verfügbar ist. |
| SpinWait |
Bietet Unterstützung für Spin-basiertes Warten. |
Enumerationen
| Name | Beschreibung |
|---|---|
| ApartmentState |
Gibt den Wohnungszustand eines Threadan. |
| EventResetMode |
Gibt an, ob ein EventWaitHandle automatisch oder manuell zurückgesetzt wird, nachdem ein Signal empfangen wurde. |
| LazyThreadSafetyMode |
Gibt an, wie eine Lazy<T> Instanz den Zugriff zwischen mehreren Threads synchronisiert. |
| LockRecursionPolicy |
Gibt an, ob eine Sperre mehrmals durch denselben Thread eingegeben werden kann. |
| ThreadPriority |
Gibt die Terminplanungspriorität eines Threadan. |
| ThreadState |
Gibt die Ausführungszustände eines Threadan. |
Delegaten
| Name | Beschreibung |
|---|---|
| ContextCallback |
Stellt eine Methode dar, die in einem neuen Kontext aufgerufen werden soll. |
| IOCompletionCallback |
Empfängt den Fehlercode, die Anzahl der Bytes und den überlappenden Werttyp, wenn ein E/A-Vorgang im Threadpool abgeschlossen ist. |
| ParameterizedThreadStart |
Stellt die Methode dar, die für ein Thread. |
| SendOrPostCallback |
Stellt eine Methode dar, die aufgerufen werden soll, wenn eine Nachricht an einen Synchronisierungskontext verteilt werden soll. |
| ThreadExceptionEventHandler |
Stellt die Methode dar, die das ThreadException Ereignis eines Application. |
| ThreadStart |
Stellt die Methode dar, die für ein Thread. |
| TimerCallback |
Stellt die Methode dar, die Aufrufe von einem Timer. |
| WaitCallback |
Stellt eine Rückrufmethode dar, die von einem Threadpoolthread ausgeführt werden soll. |
| WaitOrTimerCallback |
Stellt eine Methode dar, die aufgerufen werden soll, wenn ein WaitHandle Signal signalisiert oder ein Timesout erfolgt. |