task_continuation_context — Klasa
Klasa task_continuation_context
umożliwia określenie, gdzie ma zostać wykonana kontynuacja. Ta klasa jest przydatna tylko z poziomu aplikacji środowisko wykonawcze systemu Windows. W przypadku aplikacji innych niż środowisko wykonawcze systemu Windows kontekst wykonywania kontynuacji zadania jest określany przez środowisko uruchomieniowe i nie można go skonfigurować.
Składnia
class task_continuation_context : public details::_ContextCallback;
Elementy członkowskie
Metody publiczne
Nazwa/nazwisko | opis |
---|---|
get_current_winrt_context | Zwraca obiekt kontekstu kontynuacji zadania, który reprezentuje bieżący kontekst wątku winrt. |
use_arbitrary | Tworzy kontekst kontynuacji zadania, który umożliwia środowisku uruchomieniowemu wybranie kontekstu wykonywania dla kontynuacji. |
use_current | Zwraca obiekt kontekstu kontynuacji zadania, który reprezentuje bieżący kontekst wykonywania. |
use_default | Tworzy domyślny kontekst kontynuacji zadania. |
use_synchronous_execution | Zwraca obiekt kontekstu kontynuacji zadania, który reprezentuje kontekst synchronicznego wykonywania. |
Hierarchia dziedziczenia
_ContextCallback
task_continuation_context
Wymagania
Nagłówek: ppltasks.h
Przestrzeń nazw: współbieżność
get_current_winrt_context
Zwraca obiekt kontekstu kontynuacji zadania, który reprezentuje bieżący kontekst wątku WinRT.
Składnia
static task_continuation_context get_current_winrt_context();
Wartość zwracana
Bieżący kontekst wątku środowisko wykonawcze systemu Windows. Zwraca pusty task_continuation_context, jeśli jest wywoływany z kontekstu innego niż środowisko wykonawcze systemu Windows.
Uwagi
Metoda get_current_winrt_context
przechwytuje kontekst wątku środowisko wykonawcze systemu Windows obiektu wywołującego. Zwraca pusty kontekst do osób wywołujących bez środowisko wykonawcze systemu Windows.
Wartość zwrócona przez get_current_winrt_context
program może służyć do wskazania środowiska uruchomieniowego, że kontynuacja powinna być wykonywana w modelu mieszkania przechwyconego kontekstu (STA vs MTA), niezależnie od tego, czy wcześniejsze zadanie jest świadome mieszkania. Zadanie obsługujące mieszkanie to zadanie, które odpakowuje interfejs środowisko wykonawcze systemu Windows IAsyncInfo
lub zadanie malejące z takiego zadania.
Ta metoda jest podobna use_current
do metody, ale jest również dostępna dla natywnego kodu C++ bez obsługi rozszerzenia C++/CX. Jest ona przeznaczona do użycia przez zaawansowanych użytkowników piszących kod biblioteki C++/CX-agnostic zarówno dla obiektów wywołujących natywne, jak i środowisko wykonawcze systemu Windows. Jeśli nie potrzebujesz tej funkcji, zalecamy metodę use_current
, która jest dostępna tylko dla klientów C++/CX.
use_arbitrary
Tworzy kontekst kontynuacji zadania, który umożliwia środowisku uruchomieniowemu wybranie kontekstu wykonywania dla kontynuacji.
Składnia
static task_continuation_context use_arbitrary();
Wartość zwracana
Kontekst kontynuacji zadania, który reprezentuje dowolną lokalizację.
Uwagi
Gdy ten kontekst kontynuacji jest używany, kontynuacja będzie wykonywana w kontekście, środowisko uruchomieniowe wybiera nawet wtedy, gdy zadanie antecedent jest świadome.
use_arbitrary
Może służyć do wyłączania domyślnego zachowania kontynuacji zadania obsługującego mieszkanie utworzonego w sta.
Ta metoda jest dostępna tylko dla aplikacji środowisko wykonawcze systemu Windows.
use_current
Zwraca obiekt kontekstu kontynuacji zadania, który reprezentuje bieżący kontekst wykonywania.
static task_continuation_context use_current();
Wartość zwracana
Bieżący kontekst wykonywania.
Uwagi
Ta metoda przechwytuje kontekst środowisko wykonawcze systemu Windows obiektu wywołującego, aby kontynuacje mogły być wykonywane we właściwym mieszkaniu.
Wartość zwracana przez use_current
program może służyć do wskazania środowiska uruchomieniowego, że kontynuacja powinna być wykonywana w przechwyconym kontekście (STA vs MTA), niezależnie od tego, czy zadanie antycedent jest świadome. Zadanie obsługujące mieszkanie to zadanie, które odpakowuje interfejs środowisko wykonawcze systemu Windows IAsyncInfo
lub zadanie malejące z takiego zadania.
Ta metoda jest dostępna tylko dla aplikacji środowisko wykonawcze systemu Windows.
use_default
Tworzy domyślny kontekst kontynuacji zadania.
static task_continuation_context use_default();
Wartość zwracana
Domyślny kontekst kontynuacji.
Uwagi
Kontekst domyślny jest używany, jeśli nie określisz kontekstu kontynuacji podczas wywoływania then
metody. W aplikacjach systemu Windows dla systemu Windows 7 i nowszych, a także aplikacji klasycznych w systemie Windows 8 i nowszych środowisko uruchomieniowe określa, gdzie będą wykonywane kontynuacje zadań. Jednak w aplikacji środowisko wykonawcze systemu Windows domyślnym kontekstem kontynuacji dla kontynuacji zadania obsługującego mieszkanie jest mieszkanie, w którym then
jest wywoływana.
Zadanie obsługujące mieszkanie to zadanie, które odpakowuje interfejs środowisko wykonawcze systemu Windows IAsyncInfo
lub zadanie malejące z takiego zadania. W związku z tym, jeśli planujesz kontynuację zadania obsługującego mieszkanie w środowisko wykonawcze systemu Windows STA, kontynuacja zostanie wykonana w tym sta.
Kontynuacja zadania bez obsługi apartamentów zostanie wykonana w kontekście wybranego środowiska uruchomieniowego.
task_continuation_context::use_synchronous_execution
Zwraca obiekt kontekstu kontynuacji zadania, który reprezentuje kontekst synchronicznego wykonywania.
Składnia
static task_continuation_context use_synchronous_execution();
Wartość zwracana
Kontekst wykonywania synchronicznego.
Uwagi
Metoda use_synchronous_execution
wymusza synchroniczne uruchamianie zadania kontynuacji w kontekście, powodując ukończenie zadania przeddentowego.
Jeśli zadanie antecedent zostało już ukończone po dołączeniu kontynuacji, kontynuacja jest uruchamiana synchronicznie w kontekście, który dołącza kontynuację.