Threading und Tasks verstehen
Erkunden Sie Threading und Tasks, um parallele Verarbeitung in C# zu verwalten
Threading und Tasks verstehen ist eine kostenlose C# Academy-Lektion auf CoddyKit. Dies ist Lektion 3 von 5. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des C# Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der C# Academy-Kurs umfasst insgesamt 5 Lektionen.
Einführung in Threading und Tasks
Threading und Tasks verstehen
Willkommen in der nächsten Lektion! In dieser Lektion lernen Sie Threading und Tasks in C# kennen. Damit können Sie mehrere Vorgänge gleichzeitig ausführen und so die Leistung verbessern. Beginnen wir!

Was ist Threading?
Was ist Threading?
Threading bezeichnet das gleichzeitige Ausführen mehrerer Vorgänge. Jeder Thread stellt einen separaten Steuerungsfluss in Ihrer Anwendung dar.
Wichtiger Punkt: Threading verbessert die Leistung, indem mehrere Prozessorkerne für die gleichzeitige Ausführung genutzt werden.
Threads erstellen und starten
Threads erstellen und starten
Sie können Threads mithilfe der Klasse Thread erstellen und starten. Beispiel:
using System;
using System.Threading;
class Program {
static void Main() {
Thread thread = new Thread(PrintNumbers);
thread.Start();
Console.WriteLine("Main thread is running...");
}
static void PrintNumbers() {
for (int i = 1; i <= 5; i++) {
Console.WriteLine(i);
Thread.Sleep(1000); // Pause for 1 second
}
}
}
Einführung in Tasks
Einführung in Tasks
Tasks bieten im Vergleich zu Threads eine Abstraktion auf höherer Ebene für die nebenläufige Programmierung. Die Klasse Task ist Teil der Task Parallel Library (TPL) in C#.
Beispiel: Einen Task erstellen und starten:
Tipp: Tasks sind einfacher zu verwalten und bieten im Vergleich zu Threads eine bessere Fehlerbehandlung.
using System;
using System.Threading.Tasks;
class Program {
static void Main() {
Task task = Task.Run(() => {
for (int i = 1; i <= 5; i++) {
Console.WriteLine(i);
Task.Delay(1000).Wait();
}
});
Console.WriteLine("Main thread is running...");
task.Wait(); // Wait for the task to complete
}
}
Parallel.For und Parallel.ForEach verwenden
Parallel.For und Parallel.ForEach verwenden
Die Klasse Parallel in C# ermöglicht es, Schleifen zur Verbesserung der Leistung parallel auszuführen. Beispiel:
Wichtiger Punkt: Verwenden Sie Parallel.For und Parallel.ForEach für datenintensive Aufgaben, die gleichzeitig ausgeführt werden können.
using System;
using System.Threading.Tasks;
class Program {
static void Main() {
Parallel.For(0, 5, i => {
Console.WriteLine($"Processing {i} on thread {Task.CurrentId}");
});
Console.WriteLine("All tasks completed.");
}
}
Ausnahmen in Tasks behandeln
Ausnahmen in Tasks behandeln
Sie können Ausnahmen in Tasks mithilfe eines try-catch-Blocks oder der Eigenschaft Task.Exception abfangen. Beispiel:
using System;
using System.Threading.Tasks;
class Program {
static void Main() {
try {
Task task = Task.Run(() => {
throw new InvalidOperationException("Task failed!");
});
task.Wait();
} catch (AggregateException ex) {
Console.WriteLine("Error: " + ex.InnerException.Message);
}
}
}
Praxisaufgabe
Praxisaufgabe
Erstellen Sie ein Programm, das mehrere Tasks startet, um Zahlen parallel zu verarbeiten und ihre Quadrate auszugeben. Beispiel:
using System;
using System.Threading.Tasks;
class Program {
static void Main() {
int[] numbers = { 1, 2, 3, 4, 5 };
Parallel.ForEach(numbers, number => {
Console.WriteLine($"Square of {number}: {number * number}");
});
}
}
Bewährte Vorgehensweisen für Threading und Tasks
Bewährte Vorgehensweisen für Threading und Tasks
Hier sind einige bewährte Vorgehensweisen:
- Bevorzugen Sie
TaskgegenüberThreadfür Nebenläufigkeit auf höherer Ebene. - Verwenden Sie
Parallel-Klassen für datenintensive Vorgänge. - Behandeln Sie Ausnahmen ordnungsgemäß, um robuste Anwendungen sicherzustellen.
- Begrenzen Sie die Anzahl der Threads oder Tasks, um Ressourcenkonflikte zu vermeiden.
Tipp: Verwenden Sie asynchrone Programmierung, wenn E/A-Operationen überwiegen, und Threads oder Tasks für CPU-gebundene Aufgaben.
Sehr gut!
Sehr gut!
Herzlichen Glückwunsch! Sie haben die Grundlagen von Threading und Tasks für die nebenläufige Programmierung in C# gelernt. In der nächsten Lektion beschäftigen wir uns mit Delegates und Lambda-Ausdrücken, zwei leistungsfähigen Funktionen für die funktionale Programmierung. Programmieren wir weiter!

Häufig gestellte Fragen
Ist die Lektion „Threading und Tasks verstehen“ kostenlos?
Ja — der vollständige Text von „Threading und Tasks verstehen“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des C# Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der C# Academy-Kurs umfasst insgesamt 5 Lektionen.
Was lerne ich in „Threading und Tasks verstehen“?
Erkunden Sie Threading und Tasks, um parallele Verarbeitung in C# zu verwalten Du übst C# Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um C# Academy zu starten?
Keine Vorkenntnisse erforderlich. C# Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 3 von 5.
Wie lange dauert die Lektion „Threading und Tasks verstehen“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser C# Academy-Lektion Code schreiben und ausführen?
Ja. Jede C# Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- Generics in C#
- Async und Await: Mit asynchronem Code arbeiten
- Threading und Tasks verstehen
- Delegates und Lambdas erkunden
- Reflection in C# verstehen