task_continuation_context – třída
Třída task_continuation_context
umožňuje určit, kde se má pokračování provést. Tato třída je užitečná jenom z aplikace prostředí Windows Runtime. U aplikací, které nejsou prostředí Windows Runtime, je kontext spuštění úlohy určen modulem runtime a nelze ho konfigurovat.
Syntaxe
class task_continuation_context : public details::_ContextCallback;
Členové
Veřejné metody
Název | Popis |
---|---|
get_current_winrt_context | Vrátí kontextový objekt pokračování úkolu, který představuje aktuální kontext vlákna winrt. |
use_arbitrary | Vytvoří kontext pokračování úlohy, který modulu runtime umožňuje zvolit kontext spuštění pro pokračování. |
use_current | Vrátí kontextový objekt pokračování úkolu, který představuje aktuální kontext spuštění. |
use_default | Vytvoří výchozí kontext pokračování úkolu. |
use_synchronous_execution | Vrátí objekt kontextu pokračování úkolu, který představuje synchronní kontext spuštění. |
Hierarchie dědičnosti
_ContextCallback
task_continuation_context
Požadavky
Hlavička: ppltasks.h
Obor názvů: souběžnost
get_current_winrt_context
Vrátí objekt kontextu pokračování úkolu, který představuje aktuální kontext vlákna WinRT.
Syntaxe
static task_continuation_context get_current_winrt_context();
Návratová hodnota
Aktuální kontext vlákna prostředí Windows Runtime. Vrátí prázdnou task_continuation_context, pokud je volána z kontextu, který není prostředí Windows Runtime.
Poznámky
Metoda get_current_winrt_context
zachycuje kontext vlákna volajícího prostředí Windows Runtime. Vrátí prázdný kontext volajícím, kteří nejsou prostředí Windows Runtime.
Hodnotu vrácenou modulem get_current_winrt_context
runtime lze použít k označení, že pokračování by se mělo provést v modelu bytu zachyceného kontextu (STA vs. MTA), bez ohledu na to, zda je úloha s ohledem na architekturu bytu vědoma. Úkol pracující s apartmány je úkol, který rozbalí prostředí Windows Runtime IAsyncInfo
rozhraní, nebo úkol sestupný z takového úkolu.
Tato metoda je podobná use_current
metodě, ale je také k dispozici nativnímu kódu C++ bez podpory rozšíření C++/CX. Je určená pro pokročilé uživatele, kteří zapisují kód knihovny nezávislé na C++/CX pro nativní i prostředí Windows Runtime volající. Pokud tuto funkci nepotřebujete, doporučujeme metodu use_current
, která je k dispozici pouze pro klienty C++/CX.
use_arbitrary
Vytvoří kontext pokračování úlohy, který modulu runtime umožňuje zvolit kontext spuštění pro pokračování.
Syntaxe
static task_continuation_context use_arbitrary();
Návratová hodnota
Kontext pokračování úkolu, který představuje libovolné umístění.
Poznámky
Pokud se tento kontext pokračování použije, pokračování se spustí v kontextu, který modul runtime zvolí i v případě, že úloha typu antecedent je vědoma bytu.
use_arbitrary
lze použít k vypnutí výchozího chování pro pokračování úkolu pracujícího s apartmánem vytvořeným ve sta.
Tato metoda je dostupná pouze pro prostředí Windows Runtime aplikace.
use_current
Vrátí kontextový objekt pokračování úkolu, který představuje aktuální kontext spuštění.
static task_continuation_context use_current();
Návratová hodnota
Aktuální kontext spuštění.
Poznámky
Tato metoda zachycuje kontext volajícího prostředí Windows Runtime, aby bylo možné pokračovat v pravém bytě.
Hodnotu vrácenou modulem use_current
runtime lze použít k označení, že pokračování by se mělo provést v zachyceném kontextu (STA vs MTA) bez ohledu na to, zda je nebo není úloha s ohledem na objekt apartment aware. Úkol pracující s apartmány je úkol, který rozbalí prostředí Windows Runtime IAsyncInfo
rozhraní, nebo úkol sestupný z takového úkolu.
Tato metoda je dostupná pouze pro prostředí Windows Runtime aplikace.
use_default
Vytvoří výchozí kontext pokračování úkolu.
static task_continuation_context use_default();
Návratová hodnota
Výchozí kontext pokračování.
Poznámky
Výchozí kontext se použije, pokud při volání then
metody nezadáte kontext pokračování. V aplikacích pro Windows pro Windows 7 a novějších i desktopových aplikacích ve Windows 8 a novějších určuje modul runtime, kde se budou spouštět pokračování úloh. V aplikaci prostředí Windows Runtime ale výchozí kontext pokračování pro pokračování úkolu s informacemi o apartmánu je byt, ve kterém then
je vyvolán.
Úkol pracující s apartmány je úkol, který rozbalí prostředí Windows Runtime IAsyncInfo
rozhraní, nebo úkol sestupný z takového úkolu. Proto pokud plánujete pokračování na úkolu s vědomím bytu v prostředí Windows Runtime STA, pokračování se provede v tomto STA.
Pokračování úlohy bez apartmánu se provede v kontextu, který modul runtime zvolí.
task_continuation_context::use_synchronous_execution
Vrátí objekt kontextu pokračování úkolu, který představuje synchronní kontext spuštění.
Syntaxe
static task_continuation_context use_synchronous_execution();
Návratová hodnota
Synchronní kontext spuštění.
Poznámky
Metoda use_synchronous_execution
vynutí, aby úloha pokračování běžela synchronně v kontextu, což způsobuje dokončení úlohy s tecedent.
Pokud již dokončena úloha tecedent po připojení pokračování, pokračování se spustí synchronně v kontextu, který připojí pokračování.