Класс task_continuation_contexttask_continuation_context Class

Класс task_continuation_context позволяет указать место продолжения выполнения задачи.The task_continuation_context class allows you to specify where you would like a continuation to be executed. Этот класс рекомендуется использовать только из приложения среда выполнения Windows.It is only useful to use this class from a Windows Runtime app. Для приложений, не относящихся к среда выполнения Windows, контекст выполнения продолжения задачи определяется средой выполнения и не настраивается.For non-Windows Runtime apps, the task continuation's execution context is determined by the runtime, and not configurable.

СинтаксисSyntax

class task_continuation_context : public details::_ContextCallback;

ЧленыMembers

Открытые методыPublic Methods

nameName ОписаниеDescription
get_current_winrt_contextget_current_winrt_context Возвращает объект контекста продолжения задачи, представляющий текущий контекст потока WinRT.Returns a task continuation context object that represents the current winrt thread context.
use_arbitraryuse_arbitrary Создает контекст продолжения выполнения задачи, который позволяет среде выполнения возможность выбора контекста для продолжения.Creates a task continuation context which allows the Runtime to choose the execution context for a continuation.
use_currentuse_current Возвращает объект контекста продолжения задачи, представляющий контекст текущего выполнения.Returns a task continuation context object that represents the current execution context.
use_defaultuse_default Создает контекст продолжения задачи по умолчанию.Creates the default task continuation context.
use_synchronous_executionuse_synchronous_execution Возвращает объект контекста продолжения задачи, представляющий контекст синхронного выполнения.Returns a task continuation context object that represents the synchronous execution context.

Иерархия наследованияInheritance Hierarchy

_ContextCallback

task_continuation_context

ТребованияRequirements

Заголовок: из ppltasks. hHeader: ppltasks.h

Пространство имен: параллелизмNamespace: concurrency

get_current_winrt_contextget_current_winrt_context

Возвращает объект контекста продолжения задачи, представляющий текущий контекст потока WinRT.Returns a task continuation context object that represents the current WinRT thread context.

СинтаксисSyntax

static task_continuation_context get_current_winrt_context();

Возвращаемое значениеReturn Value

Текущий контекст потока среда выполнения Windows.The current Windows Runtime thread context. Возвращает пустой task_continuation_context, если вызывается из контекста, не являющегося среда выполнения Windows.Returns an empty task_continuation_context if called from a non-Windows Runtime context.

КомментарииRemarks

get_current_winrt_contextМетод захватывает контекст потока среда выполнения Windows вызывающего объекта.The get_current_winrt_context method captures the caller's Windows Runtime thread context. Он возвращает пустой контекст для вызывающих объектов, не являющихся среда выполнения Windows.It returns an empty context to non-Windows Runtime callers.

Значение, возвращаемое, get_current_winrt_context можно использовать, чтобы указать среде выполнения, что продолжение должно выполняться в модели подразделений перехваченного контекста (STA VS MTA), независимо от того, учитывается ли предшествующая задача подразделением.The value returned by get_current_winrt_context can be used to indicate to the Runtime that the continuation should execute in the apartment model of the captured context (STA vs MTA), regardless of whether the antecedent task is apartment aware. Задача, учитывающая подразделение, — это задача, которая распаковывает IAsyncInfo интерфейс Среда выполнения Windows или задачу, которая в то же самое относится к этой задаче.An apartment aware task is a task that unwraps a Windows Runtime IAsyncInfo interface, or a task that is descended from such a task.

Этот метод аналогичен use_current методу, но он также доступен для машинного кода c++ без поддержки расширения C++/CX.This method is similar to the use_current method, but it is also available to native C++ code without C++/CX extension support. Он предназначен для использования опытными пользователями, пишущими код библиотеки C++/ККС-агностик для машинных и среда выполнения Windowsных вызовов.It is intended for use by advanced users writing C++/CX-agnostic library code for both native and Windows Runtime callers. Если эта функция не нужна, рекомендуется использовать use_current метод, который доступен только для клиентов C++/CX.Unless you need this functionality, we recommend the use_current method, which is only available to C++/CX clients.

use_arbitraryuse_arbitrary

Создает контекст продолжения выполнения задачи, который позволяет среде выполнения возможность выбора контекста для продолжения.Creates a task continuation context which allows the Runtime to choose the execution context for a continuation.

СинтаксисSyntax

static task_continuation_context use_arbitrary();

Возвращаемое значениеReturn Value

Контекст продолжения задачи, представляющий произвольное расположение.A task continuation context that represents an arbitrary location.

КомментарииRemarks

При использовании этого контекста продолжения продолжение будет выполняться в контексте, который выбирается средой выполнения, даже если задача предшествующей задачи является подразделением.When this continuation context is used the continuation will execute in a context the runtime chooses even if the antecedent task is apartment aware.

use_arbitrary можно использовать для отключения поведения по умолчанию для продолжения в задаче, учитывающей подразделение, созданной в STA.use_arbitrary can be used to turn off the default behavior for a continuation on an apartment aware task created in an STA.

Этот метод доступен только для среда выполнения Windows приложений.This method is only available to Windows Runtime apps.

use_currentuse_current

Возвращает объект контекста продолжения задачи, представляющий контекст текущего выполнения.Returns a task continuation context object that represents the current execution context.

static task_continuation_context use_current();

Возвращаемое значениеReturn Value

Указывает текущий контекст выполнения.The current execution context.

КомментарииRemarks

Этот метод захватывает контекст среда выполнения Windows вызывающего объекта, чтобы продолжения могли выполняться в правильном апартаменте.This method captures the caller's Windows Runtime context so that continuations can be executed in the right apartment.

Значение, возвращаемое, use_current можно использовать, чтобы указать среде выполнения, что продолжение должно выполняться в перехваченном контексте (STA VS MTA) независимо от того, учитывается ли предшествующая задача подразделением.The value returned by use_current can be used to indicate to the Runtime that the continuation should execute in the captured context (STA vs MTA) regardless of whether or not the antecedent task is apartment aware. Задача, учитывающая подразделение, — это задача, которая распаковывает IAsyncInfo интерфейс Среда выполнения Windows или задачу, которая в то же самое относится к этой задаче.An apartment aware task is a task that unwraps a Windows Runtime IAsyncInfo interface, or a task that is descended from such a task.

Этот метод доступен только для среда выполнения Windows приложений.This method is only available to Windows Runtime apps.

use_defaultuse_default

Создает контекст продолжения задачи по умолчанию.Creates the default task continuation context.

static task_continuation_context use_default();

Возвращаемое значениеReturn Value

Контекст продолжения по умолчанию.The default continuation context.

КомментарииRemarks

Контекст по умолчанию используется, если не задан контекст продолжения при вызове then метода.The default context is used if you don't specify a continuation context when you call the then method. В приложениях Windows для Windows 7 и ниже, а также настольных приложениях в Windows 8 и более поздних версиях среда выполнения определяет, где будут выполняться продолжения задачи.In Windows applications for Windows 7 and below, as well as desktop applications on Windows 8 and higher, the runtime determines where task continuations will execute. Однако в среда выполнения Windowsном приложении контекст продолжения по умолчанию для продолжения в задаче с подразделением подразделений — это апартамент, в котором then вызывается.However, in a Windows Runtime app, the default continuation context for a continuation on an apartment aware task is the apartment where then is invoked.

Задача, учитывающая подразделение, — это задача, которая распаковывает IAsyncInfo интерфейс Среда выполнения Windows или задачу, которая в то же самое относится к этой задаче.An apartment aware task is a task that unwraps a Windows Runtime IAsyncInfo interface, or a task that is descended from such a task. Таким образом, если вы запланируете продолжение задачи с подразделением апартамента в среда выполнения Windows STA, продолжение будет выполняться в этом STA.Therefore, if you schedule a continuation on an apartment aware task in a Windows Runtime STA, the continuation will execute in that STA.

Продолжение в задаче, не учитывающем апартамент, будет выполняться в контексте, который выбирает среда выполнения.A continuation on a non-apartment aware task will execute in a context the Runtime chooses.

task_continuation_context:: use_synchronous_executiontask_continuation_context::use_synchronous_execution

Возвращает объект контекста продолжения задачи, представляющий контекст синхронного выполнения.Returns a task continuation context object that represents the synchronous execution context.

СинтаксисSyntax

static task_continuation_context use_synchronous_execution();

Возвращаемое значениеReturn Value

Синхронный контекст выполнения.The synchronous execution context.

КомментарииRemarks

use_synchronous_executionМетод заставляет задачу продолжения выполняться синхронно в контексте, что приводит к завершению предшествующей задачи.The use_synchronous_execution method forces the continuation task to run synchronously on the context, causing its antecedent task's completion.

Если предшествующая задача уже выполнена при присоединении продолжения, продолжение выполняется синхронно в контексте, который прикрепляет продолжение.If the antecedent task has already completed when the continuation is attached, the continuation runs synchronously on the context that attaches the continuation.

См. также разделSee also

Пространство имен Concurrencyconcurrency Namespace