Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Класс task_continuation_context позволяет указать место продолжения выполнения задачи. Это имеет смысл использовать этот класс только в приложении Windows Runtime. Для приложений, не относящихся к Windows Runtime, контекст выполнения задачи продолжения определяется выполняющей средой и не подлежит настройке.
Синтаксис
class task_continuation_context : public details::_ContextCallback;
Участники
Открытые методы
| Имя | Описание |
|---|---|
| get_current_winrt_context | Возвращает объект контекста продолжения задачи, представляющий текущий контекст потока winrt. |
| use_arbitrary | Создает контекст продолжения задачи, который позволяет среде выполнения выбрать контекст для продолжения. |
| использовать_текущее | Возвращает объект контекста продолжения задачи, представляющий контекст текущего выполнения. |
| использовать_по_умолчанию | Создает контекст продолжения задачи по умолчанию. |
| use_synchronous_execution | Возвращает объект контекста продолжения задачи, представляющий контекст синхронного выполнения. |
Иерархия наследования
_ContextCallback
task_continuation_context
Требования
Заголовок: ppltasks.h
Пространство имен: конкурентность
get_current_winrt_context
Возвращает объект контекста продолжения задачи, представляющий текущий контекст потока WinRT.
Синтаксис
static task_continuation_context get_current_winrt_context();
Возвращаемое значение
Текущий контекст потока Windows Runtime. Возвращает пустой task_continuation_context, если вызывается из контекста, отличного от среды выполнения Windows.
Замечания
Метод get_current_winrt_context фиксирует контекст потока среды выполнения Windows вызывающего объекта. Он возвращает пустой контекст для вызовов из сред, не относящихся к среде выполнения Windows.
Возвращаемое значение get_current_winrt_context можно использовать, чтобы указать среде выполнения, что продолжение должно выполняться в апартаментной модели захваченного контекста (STA или MTA), независимо от того, учитывается ли предшествующая задача. Задача с учётом среды — это задача, которая использует интерфейс Windows Runtime IAsyncInfo, или задача, производная от такой задачи.
Этот метод аналогичен методу use_current, но он также доступен для кода на C++ без поддержки расширения C++/CX. Он предназначен для использования опытными пользователями, пишущими библиотечный код, не зависящий от C++/CX, для вызова из собственных приложений и Windows Runtime. Если вам не нужна эта функция, мы рекомендуем метод use_current, который доступен только клиентам C++/CX.
использовать_произвольное
Создает контекст продолжения выполнения задачи, который позволяет среде выполнения выбрать контекст для продолжения.
Синтаксис
static task_continuation_context use_arbitrary();
Возвращаемое значение
Контекст продолжения задачи, представляющий произвольную позицию.
Замечания
Если этот контекст продолжения используется, задача продолжения будет выполняться в контексте, выбранном средой выполнения, даже если учитывается предшествующая задача.
use_arbitrary можно использовать для отключения поведения по умолчанию для продолжения задачи, учитывающей модель одноквартирного приложения, созданной в STA.
Этот метод доступен только для приложений на платформе Windows Runtime.
использовать_текущий
Возвращает объект контекста продолжения задачи, представляющий контекст текущего выполнения.
static task_continuation_context use_current();
Возвращаемое значение
Текущий контекст выполнения.
Замечания
Этот метод захватывает контекст Windows Runtime вызывающего, чтобы продолжения могли выполняться в правильном апартаменте.
Возвращаемое значение use_current можно использовать для указания времени выполнения, что продолжение должно выполняться в захваченном контексте (STA или MTA), независимо от того, учитывается ли предшествующая задача. Задача с учётом среды — это задача, которая использует интерфейс Windows Runtime IAsyncInfo, или задача, производная от такой задачи.
Этот метод доступен только для приложений на платформе Windows Runtime.
использовать_по_умолчанию
Создает контекст продолжения задачи по умолчанию.
static task_continuation_context use_default();
Возвращаемое значение
Контекст продолжения по умолчанию.
Замечания
Контекст по умолчанию используется, если при вызове then метода не указан контекст продолжения. В приложениях Windows для Windows 7 и более поздних версий, а также классических приложениях в Windows 8 и более поздних версиях среда выполнения определяет, где будут выполняться продолжения задач. Однако в приложении платформы Windows Runtime контекст продолжения по умолчанию для выполнения продолжения на задаче, учитывающей apartment, является apartment, где вызывается then.
Задача с учётом среды — это задача, которая использует интерфейс Windows Runtime IAsyncInfo, или задача, производная от такой задачи. Таким образом, если вы планируете продолжение задачи с учетом квартиры в среда выполнения Windows STA, продолжение будет выполняться в этом STA.
Продолжение задачи, не относяющейся к квартире, будет выполняться в контексте, который выбирает среда выполнения.
task_continuation_context::use_synchronous_execution
Возвращает объект контекста продолжения задачи, представляющий контекст синхронного выполнения.
Синтаксис
static task_continuation_context use_synchronous_execution();
Возвращаемое значение
Контекст синхронного выполнения.
Замечания
Метод use_synchronous_execution заставляет задачу продолжения синхронно выполняться в контексте, что приводит к завершению предшествующей задачи.
Если предшествующая задача уже завершена при присоединении продолжения, продолжение выполняется синхронно в контексте, в котором присоединяется продолжение.