Threading (C#-Programmierhandbuch)

Aktualisiert: November 2007

Mit Threading können Sie in einem C#-Programm mehrere Verarbeitungsschritte gleichzeitig ausführen, sodass Sie jeweils mehr als eine Operation ausführen können. Sie können Threading zum Beispiel verwenden, um Benutzereingaben zu überwachen, Hintergrundtasks zu starten und gleichzeitige Eingabestreams zu behandeln. Der System.Threading-Namespace stellt Klassen und Schnittstellen bereit, die die Programmierung mit mehreren Threads unterstützen und Aufgaben wie das Erstellen und Starten neuer Threads, die Synchronisierung mehrerer Threads sowie das Anhalten und das Abbrechen von Threads vereinfachen.

Um Threading in den C#-Code aufzunehmen, erstellen Sie eine Funktion, die außerhalb des Hauptthreads ausgeführt wird, und zeigen Sie mit einem neuen Thread-Objekt darauf. Im folgenden Codebeispiel wird in einer C#-Anwendung ein neuer Thread erstellt:

System.Threading.Thread newThread;
newThread = new System.Threading.Thread(anObject.AMethod);

Im folgenden Codebeispiel wird in einer C#-Anwendung ein neuer Thread gestartet:

newThread.Start();

Multithreading löst einerseits Probleme mit der Reaktionsgeschwindigkeit und dem Multitasking, kann andererseits aber auch Probleme mit der gemeinsamen Nutzung und Synchronisierung von Ressourcen hervorrufen, da Threads entsprechend einem zentralen Thread, der den Mechanismus plant, ohne Vorwarnung unterbrochen und fortgesetzt werden. Weitere Informationen finden Sie unter Threadsynchronisierung (C#-Programmierhandbuch). Eine Übersicht erhalten Sie unter Verwenden von Threads und Threading.

Übersicht

Threads verfügen über folgende Eigenschaften:

  • Threads ermöglichen die gleichzeitige Ausführung mehrerer Verarbeitungsschritte in einem C#-Programm.

  • Der System.Threading-Namespace von .NET Framework vereinfacht die Verwendung von Threads erheblich.

  • Threads nutzen die Ressourcen einer Anwendung gemeinsam. Weitere Informationen finden Sie unter Verwenden von Threads und Threading.

Verwandte Abschnitte

Weitere Informationen finden Sie unter den folgenden Themen:

C#-Programmiersprachenspezifikation

Weitere Informationen finden Sie in den folgenden Abschnitten von C#-Programmiersprachenspezifikation:

  • 3.10 Ausführungsreihenfolge

  • 8.12 Die lock-Anweisung

  • 10.5.3 Flüchtige Felder

  • 10.8.1 Feldähnliche Ereignisse

Siehe auch

Aufgaben

Technologiebeispiel für Monitor-Synchronisierung

Technologiebeispiel für Wait-Synchronisierung

Konzepte

C#-Programmierhandbuch

Mutexe

Monitore

Interlocked-Vorgänge

AutoResetEvent

Referenz

Thread

Mutex

Delegaten (C#-Programmierhandbuch)

Weitere Ressourcen

Gewusst wie: Synchronisieren des Zugriffs auf eine freigegebene Ressource in einer Multithreadumgebung mithilfe von Visual C# .NET