task_continuation_context-Klasse
Mit der task_continuation_context
-Klasse können Sie angeben, an welcher Stelle eine Fortsetzung ausgeführt werden soll. Es ist nur nützlich, diese Klasse aus einer Windows-Runtime-App zu verwenden. Bei Nicht-Windows-Runtime-Apps wird der Ausführungskontext der Aufgabenfortsetzung durch die Laufzeit bestimmt und nicht konfigurierbar.
Syntax
class task_continuation_context : public details::_ContextCallback;
Member
Öffentliche Methoden
Name | Beschreibung |
---|---|
get_current_winrt_context | Gibt ein Aufgabenfortsetzungskontextobjekt zurück, das den aktuellen Winrt-Threadkontext darstellt. |
use_arbitrary | Erstellt einen Aufgabenfortsetzungskontext, der er es der Laufzeit ermöglicht, den Ausführungskontext für eine Fortsetzung auszuwählen. |
use_current | Gibt ein Kontextobjekt für die Aufgabenfortsetzung zurück, das den aktuellen Ausführungskontext darstellt. |
use_default | Erstellt den standardmäßigen Aufgabenfortsetzungskontext. |
use_synchronous_execution | Gibt ein Aufgabenfortsetzungskontextobjekt zurück, das den synchronen Ausführungskontext darstellt. |
Vererbungshierarchie
_ContextCallback
task_continuation_context
Anforderungen
Kopfzeile: ppltasks.h
Namespace: Parallelität
get_current_winrt_context
Gibt ein Aufgabenfortsetzungskontextobjekt zurück, das den aktuellen WinRT-Threadkontext darstellt.
Syntax
static task_continuation_context get_current_winrt_context();
Rückgabewert
Der aktuelle Windows-Runtime Threadkontext. Gibt eine leere task_continuation_context zurück, wenn sie aus einem Kontext ohne Windows-Runtime aufgerufen wird.
Hinweise
Die get_current_winrt_context
Methode erfasst den Windows-Runtime Threadkontext des Aufrufers. Er gibt einen leeren Kontext an Nicht-Windows-Runtime Aufrufer zurück.
Der von get_current_winrt_context
diesem Wert zurückgegebene Wert kann verwendet werden, um anzugeben, dass die Fortsetzung im Apartmentmodell des erfassten Kontexts (STA vs MTA) ausgeführt werden soll, unabhängig davon, ob die vorerkennende Aufgabe apartmentfähig ist. Eine apartmentfähige Aufgabe ist eine Aufgabe, die eine IAsyncInfo
-Windows-Runtime-Schnittstelle entpackt, oder eine Aufgabe, die von einer solchen Aufgabe abgeleitet wird.
Diese Methode ähnelt der use_current
Methode, ist aber auch für systemeigene c++-Code ohne C++/CX-Erweiterungsunterstützung verfügbar. Sie ist für die Verwendung durch erweiterte Benutzer vorgesehen, die C++/CX-agnostischen Bibliothekscode sowohl für systemeigene als auch für Windows-Runtime Aufrufer schreiben. Sofern Sie diese Funktionalität nicht benötigen, empfehlen wir die use_current
Methode, die nur für C++/CX-Clients verfügbar ist.
use_arbitrary
Erstellt einen Aufgabenfortsetzungskontext, der er es der Laufzeit ermöglicht, den Ausführungskontext für eine Fortsetzung auszuwählen.
Syntax
static task_continuation_context use_arbitrary();
Rückgabewert
Ein Aufgabenfortsetzungskontext, der einen beliebigen Ort darstellt.
Hinweise
Wenn dieser Fortsetzungskontext verwendet wird, wird die Fortsetzung in einem Kontext ausgeführt, den die Laufzeit selbst auswählt, auch wenn die Vorgängeraufgabe apartmentfähig ist.
use_arbitrary
kann verwendet werden, um das Standardverhalten für eine Fortsetzung einer apartmentfähigen Aufgabe zu deaktivieren, die in einem STA erstellt wurde.
Diese Methode ist nur für Windows-Runtime Apps verfügbar.
use_current
Gibt ein Kontextobjekt für die Aufgabenfortsetzung zurück, das den aktuellen Ausführungskontext darstellt.
static task_continuation_context use_current();
Rückgabewert
Der aktuelle Ausführungskontext.
Hinweise
Diese Methode erfasst den Windows-Runtime-Kontext des Aufrufers, sodass Fortsetzungen im richtigen Apartment ausgeführt werden können.
Der Wert, der von use_current
zurückgegeben wird, teilt der Runtime mit, dass die Fortsetzung im erfassten Kontext (STA oder MTA) ausgeführt werden soll, unabhängig davon, ob die Vorgängeraufgabe apartmentfähig ist. Eine apartmentfähige Aufgabe ist eine Aufgabe, die eine IAsyncInfo
-Windows-Runtime-Schnittstelle entpackt, oder eine Aufgabe, die von einer solchen Aufgabe abgeleitet wird.
Diese Methode ist nur für Windows-Runtime Apps verfügbar.
use_default
Erstellt den standardmäßigen Aufgabenfortsetzungskontext.
static task_continuation_context use_default();
Rückgabewert
Der standardmäßige Fortsetzungskontext.
Hinweise
Der Standardkontext wird verwendet, wenn Sie beim Aufrufen der then
Methode keinen Fortsetzungskontext angeben. In Windows-Anwendungen für Windows 7 und älter sowie in Desktopanwendungen für Windows 8 und höher bestimmt die Laufzeit, wo Aufgabenfortsetzungen ausgeführt werden. In einer Windows-Runtime-App ist jedoch der Standardfortsetzungskontext für eine Fortsetzung für eine Aufgabe, die für ein Apartment geeignet ist, die Wohnung, in then
der sie aufgerufen wird.
Eine apartmentfähige Aufgabe ist eine Aufgabe, die eine IAsyncInfo
-Windows-Runtime-Schnittstelle entpackt, oder eine Aufgabe, die von einer solchen Aufgabe abgeleitet wird. Wenn Sie eine Fortsetzung einer apartmentfähigen Aufgabe in einem Windows-Runtime-STA planen, wird die Fortsetzung daher in diesem STA ausgeführt.
Eine Fortsetzung einer nicht apartmentfähigen Aufgabe wird in einem Kontext ausgeführt, den die Laufzeit auswählt.
task_continuation_context::use_synchronous_execution
Gibt ein Aufgabenfortsetzungskontextobjekt zurück, das den synchronen Ausführungskontext darstellt.
Syntax
static task_continuation_context use_synchronous_execution();
Rückgabewert
Der synchrone Ausführungskontext.
Hinweise
Die use_synchronous_execution
Methode erzwingt, dass die Fortsetzungsaufgabe synchron im Kontext ausgeführt wird, was dazu führt, dass der Vorgang abgeschlossen wird.
Wenn die vorerkennte Aufgabe bereits abgeschlossen wurde, wenn die Fortsetzung angefügt wird, wird die Fortsetzung synchron im Kontext ausgeführt, der die Fortsetzung anfügt.