task_continuation_context 類別
task_continuation_context
類別可讓您指定您想要執行接續的位置。 只有從 Windows 執行階段 應用程式使用此類別才有用。 對於非 Windows 執行階段 應用程式,工作接續的執行內容是由運行時間決定,且無法設定。
語法
class task_continuation_context : public details::_ContextCallback;
成員
公用方法
名稱 | 描述 |
---|---|
get_current_winrt_context | 會傳回代表目前 winrt 線程內容的工作接續內容物件。 |
use_arbitrary | 建立可讓執行階段選擇接續執行內容的工作接續內容。 |
use_current | 傳回表示目前執行內容的工作接續內容物件。 |
use_default | 建立預設工作接續內容。 |
use_synchronous_execution | 傳回代表同步執行內容的工作接續內容物件。 |
繼承階層架構
_ContextCallback
task_continuation_context
需求
標頭: ppltasks.h
命名空間: concurrency
get_current_winrt_context
會傳回代表目前 WinRT 線程內容的工作接續內容物件。
語法
static task_continuation_context get_current_winrt_context();
傳回值
目前 Windows 執行階段 線程內容。 如果從非 Windows 執行階段 內容呼叫,則傳回空白task_continuation_context。
備註
方法get_current_winrt_context
會擷取呼叫者的 Windows 執行階段 線程內容。 它會將空的內容傳回給非 Windows 執行階段呼叫端。
傳 get_current_winrt_context
回的值可用來向運行時間指出,不論前項工作是否知道 Apartment 感知,接續應該在所擷取內容 (STA 與 MTA) 的 Apartment 模型中執行。 Apartment 感知工作是解除包裝 Windows 執行階段 IAsyncInfo
介面的工作,或從這類工作遞減的工作。
這個方法與 use_current
方法類似,但它也適用於原生C++程序代碼,而不需要C++/CX 擴充功能支援。 它適用於撰寫原生和 Windows 執行階段呼叫端C++/CX 無關的連結庫程式碼的進階使用者使用。 除非您需要這項功能,否則建議您 use_current
使用 方法,此方法僅適用於C++/CX 用戶端。
use_arbitrary
建立可讓執行階段選擇接續執行內容的工作接續內容。
語法
static task_continuation_context use_arbitrary();
傳回值
代表任意位置的工作接續內容。
備註
當使用此接續內容時,即使前項工作知道Apartment,運行時間仍會在內容中執行接續。
use_arbitrary
可用來關閉 STA 中建立之 Apartment 感知工作上接續的預設行為。
這個方法僅適用於 Windows 執行階段 應用程式。
use_current
傳回表示目前執行內容的工作接續內容物件。
static task_continuation_context use_current();
傳回值
目前執行內容。
備註
這個方法會擷取呼叫者的 Windows 執行階段 內容,以便在正確的 Apartment 中執行接續。
傳 use_current
回的值可用來向運行時間指出接續應該在擷取的內容中執行(STA 與 MTA),不論前項工作是否為 Apartment 感知。 Apartment 感知工作是解除包裝 Windows 執行階段 IAsyncInfo
介面的工作,或從這類工作遞減的工作。
這個方法僅適用於 Windows 執行階段 應用程式。
use_default
建立預設工作接續內容。
static task_continuation_context use_default();
傳回值
默認接續內容。
備註
如果您在呼叫 then
方法時未指定接續內容,則會使用預設內容。 在適用於 Windows 7 和更新版本的 Windows 應用程式中,以及 Windows 8 和更新版本的傳統型應用程式,運行時間會決定工作接續的執行位置。 不過,在 Windows 執行階段 應用程式中,在 Apartment 感知工作上接續的預設接續內容是叫用 Apartment then
的位置。
Apartment 感知工作是解除包裝 Windows 執行階段 IAsyncInfo
介面的工作,或從這類工作遞減的工作。 因此,如果您在 Windows 執行階段 STA 中排程 Apartment 感知工作的接續,接續將會在該 STA 中執行。
非 Apartment 感知工作的接續會在運行時間選擇的內容中執行。
task_continuation_context::use_synchronous_execution
傳回代表同步執行內容的工作接續內容物件。
語法
static task_continuation_context use_synchronous_execution();
傳回值
同步執行內容。
備註
方法 use_synchronous_execution
會強制接續工作在內容上同步執行,導致其前項工作的完成。
如果附加接續時,前項工作已經完成,接續會在附加接續的內容上同步執行。