Udostępnij za pośrednictwem


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;

Członkowie

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ę.

Zobacz też

Przestrzeń nazw współbieżności