Freigeben über


Threadingobjekte und -features

.NET Framework stellt eine Anzahl von Objekten bereit, mit denen Multithread-Anwendungen erstellt und verwaltet werden können. Verwaltete Threads werden durch die Thread-Klasse dargestellt. Mithilfe der ThreadPool-Klasse können Multithread-Hintergrundaufgaben einfach erstellt und verwaltet werden. Die BackgroundWorker-Klasse erfüllt den gleichen Zweck für Aufgaben, die mit der Benutzeroberfläche interagieren. Die Timer-Klasse führt Hintergrundaufgaben in festgelegten Intervallen aus.

Darüber hinaus gibt es einige Klassen, die Aktivitäten von Threads synchronisieren, beispielsweise die in .NET Framework, Version 2.0, eingeführte Semaphore-Klasse und EventWaitHandle-Klasse. Die Features dieser Klassen werden in Übersicht über Synchronisierungsprimitiven verglichen.

In diesem Abschnitt

  • Verwalteter Threadpool
    Erläutert die ThreadPool-Klasse, mit deren Hilfe Sie die Ausführung einer Aufgabe an einen Thread übertragen können, ohne selbst die Threadverwaltung übernehmen zu müssen.

  • Zeitgeber
    Erläutert, wie Sie mithilfe eines Timer-Objekts festlegen können, dass ein Delegat zu einem bestimmten Zeitpunkt aufgerufen wird.

  • Monitore
    Erläutert die Verwendung der Monitor-Klasse, um den Zugriff auf einen Member zu synchronisieren oder eigene Threadverwaltungstypen zu erstellen.

  • Wait-Handles
    Beschreibt die WaitHandle-Klasse, die abstrakte Basisklasse für Wait-Handles für Ereignisse, Mutexe und Semaphoren, die das Warten für mehrere Synchronisierungsereignisse ermöglichen.

  • EventWaitHandle, AutoResetEvent, CountdownEvent und ManualResetEvent
    Beschreibt verwaltete Wait-Handles für Ereignisse, die zum Synchronisieren von Threadaktivitäten durch Signalisieren und Warten auf Signale verwendet werden.

  • Mutexe
    Erläutert die Verwendung eines Mutex, um den Zugriff auf ein Objekt zu synchronisieren oder eigene Synchronisierungsmechanismen zu erstellen.

  • Interlocked-Vorgänge
    Erläutert die Verwendung der Interlocked-Klasse, um einen Wert zu erhöhen oder zu vermindern und in einem einzigen atomaren Vorgang zu speichern.

  • Lese-/Schreibsperren
    Definiert eine Sperre, die zwischen den Modi Schreiben und Lesen unterscheidet. Das erlaubt die Ausführung von Leseoperationen, während Schreiboperationen gesperrt sind.

  • Semaphore und SemaphoreSlim
    Beschreibt Semaphore-Objekte und erklärt, wie sie zum Steuern des Zugriffs auf begrenzte Ressourcen verwendet werden.

  • Übersicht über Synchronisierungsprimitiven
    Vergleicht die Features der .NET Framework-Klassen, die zum Sperren und Synchronisieren verwalteter Threads verfügbar sind.

  • Barriere (.NET Framework)
    Beschreibt Barrier-Objekte, die das Barrieremuster für die Koordination von Threads in stufenweise durchgeführten Vorgängen implementieren.

  • SpinLock
    Beschreibt SpinLock, eine einfache Alternative zur Monitor-Klasse für bestimmte Low-Level-Szenarien.

  • Abbruchtoken
    Beschreibt CancellationToken, ein einfaches Objekt, das verwendet werden kann, um einen kooperativen Abbruch zwischen Threads zu implementieren.

  • SpinWait
    Beschreibt SpinWait, einer Low-Level-Synchronisierungsprimitiven, die andauernde Spinvorgänge vor dem Initiieren eines kernelbasierten Wartevorgangs ausführt.

Referenz

  • Thread
    Referenzdokumentation für die Thread-Klasse, die einen verwalteten Thread unabhängig davon repräsentiert, ob er von nicht verwaltetem Code stammt oder in einer verwalteten Anwendung erstellt wurde.

  • BackgroundWorker
    Aktiviert Hintergrundaufgaben, die mit der Benutzeroberfläche interagieren und über auf dem Benutzeroberflächenthread ausgelöste Ereignisse kommunizieren.

Verwandte Abschnitte

  • Asynchrone Datei-E/A
    Beschreibt, wie asynchrone E/A-Komplettierungsports den Threadpool verwenden, um Verarbeitung nur bei Fertigstellung eines Eingabe/Ausgabe-Vorgangs erforderlich zu machen.

  • Task Parallel Library
    Beschreibt die empfohlene Vorgehensweise bei der Multithreadprogrammierung in .NET Framework, Version 4 und höher.