Einfache Aufgaben
Dieses Dokument beschreibt die Rolle einfacher Aufgaben in der Concurrency Runtime. Als einfache Aufgabe werden Aufgaben bezeichnet, die Sie direkt über ein concurrency::Scheduler-Objekt oder ein concurrency::ScheduleGroup-Objekt planen. Eine einfache Aufgabe ähnelt der Funktion, die Sie für die CreateThread-Funktion der Windows-API bereitstellen. Aus diesem Grund sind einfache Aufgaben nützlich, wenn Sie vorhandenen Code anpassen, um die Planungsfunktionalität der Concurrency Runtime zu verwenden. Die Concurrency Runtime verwendet einfache Aufgaben, um asynchrone Agents zu planen und Meldungen zwischen asynchronen Meldungsblöcken zu senden.
Tipp
Die Concurrency Runtime stellt einen Standardplaner bereit. Es ist daher nicht erforderlich, einen Planer in der Anwendung zu erstellen.Der Taskplaner ermöglicht eine genauere Steuerung der Leistung von Anwendungen. Aus diesem Grund wird empfohlen, mit der Parallel Patterns Library (PPL) oder der Asynchronous Agents Library zu beginnen, wenn Sie noch nicht mit der Concurrency Runtime vertraut sind.
Für einfache Aufgaben ist weniger Aufwand erforderlich als für asynchrone Agents und Aufgabengruppen. Sie werden beispielsweise nicht informiert, wenn eine einfache Aufgabe beendet ist. Außerdem werden bei der Ausführung einfacher Aufgaben ausgelöste Ausnahmen von der Runtime nicht erfasst bzw. behandelt. Weitere Informationen zur Ausnahmebehandlung und zu einfachen Aufgaben finden Sie unter Ausnahmebehandlung in der Concurrency Runtime.
Für die meisten Aufgaben empfiehlt sich die Verwendung robusterer Funktionen (z. B. Aufgabengruppen und parallele Algorithmen), da sich komplexe Aufgaben hiermit besser in einfachere Aufgaben unterteilen lassen. Weitere Informationen zu Aufgabengruppen finden Sie unter Aufgabenparallelität (Concurrency Runtime). Weitere Informationen zu parallelen Algorithmen finden Sie unter Parallele Algorithmen.
Um eine einfache Aufgabe zu erstellen, rufen Sie concurrency::ScheduleGroup::ScheduleTask, concurrency::CurrentScheduler::ScheduleTask oder concurrency::Scheduler::ScheduleTask-Methode auf. Um das Ende einer einfachen Aufgabe abzuwarten, warten Sie, bis der übergeordnete Planer beendet wird, beenden oder einen Synchronisierungsmechanismus wie ein concurrency::event-Objekt zu verwenden.
Beispiel
Ein Beispiel zur Anpassung von vorhandenem Code zur Verwendung einer einfachen Aufgabe finden Sie unter Exemplarische Vorgehensweise: Anpassen von vorhandenem Code für die Verwendung einfacher Aufgaben.
Siehe auch
Aufgaben
Exemplarische Vorgehensweise: Anpassen von vorhandenem Code für die Verwendung einfacher Aufgaben