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 會強制接續工作在內容上同步執行,導致其前項工作的完成。

如果附加接續時,前項工作已經完成,接續會在附加接續的內容上同步執行。

另請參閱

concurrency 命名空間