Поделиться через


Класс 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. Возвращает пустую task_continuation_context, если вызывается из контекста, отличного от среда выполнения Windows.

Замечания

Метод get_current_winrt_context фиксирует контекст среда выполнения Windows потока вызывающего объекта. Он возвращает пустой контекст вызывающим абонентам, не среда выполнения Windows.

Возвращаемое get_current_winrt_context значение можно использовать для указания среды выполнения, что продолжение должно выполняться в модели квартиры захваченного контекста (STA и MTA), независимо от того, учитывается ли задача текedent. Задача с учетом квартиры — это задача, которая распакует интерфейс среда выполнения Windows IAsyncInfo или задачу, убывающую от такой задачи.

Этот метод аналогичен методу, но он также доступен для собственного use_current кода C++ без поддержки расширения C++/CX. Он предназначен для использования расширенными пользователями, написав код библиотеки C++/CX-agnostic для собственных и среда выполнения Windows вызывающих пользователей. Если вам не нужна эта функция, мы рекомендуем use_current этот метод, который доступен только клиентам C++/CX.

use_arbitrary

Создает контекст продолжения выполнения задачи, который позволяет среде выполнения возможность выбора контекста для продолжения.

Синтаксис

static task_continuation_context use_arbitrary();

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

Контекст продолжения задачи, представляющий произвольное расположение.

Замечания

Если этот контекст продолжения используется, продолжение будет выполняться в контексте среды выполнения, даже если задача antecedent учитывается.

use_arbitrary можно использовать для отключения поведения по умолчанию для продолжения задачи с учетом квартиры, созданной в STA.

Этот метод доступен только для среда выполнения Windows приложений.

use_current

Возвращает объект контекста продолжения задачи, представляющий контекст текущего выполнения.

static task_continuation_context use_current();

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

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

Замечания

Этот метод фиксирует среда выполнения Windows контекст вызывающего объекта, чтобы продолжение можно было выполнять в правильной квартире.

Возвращаемое use_current значение можно использовать для указания среды выполнения, что продолжение должно выполняться в захваченном контексте (STA и MTA), независимо от того, учитывается ли задача текedent. Задача с учетом квартиры — это задача, которая распакует интерфейс среда выполнения Windows IAsyncInfo или задачу, убывающую от такой задачи.

Этот метод доступен только для среда выполнения Windows приложений.

use_default

Создает контекст продолжения задачи по умолчанию.

static task_continuation_context use_default();

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

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

Замечания

Контекст по умолчанию используется, если при вызове then метода не указан контекст продолжения. В приложениях Windows для Windows 7 и более поздних версий, а также классических приложениях в Windows 8 и более поздних версиях среда выполнения определяет, где будут выполняться продолжения задач. Однако в приложении среда выполнения Windows контекст продолжения по умолчанию для продолжения задачи с учетом квартиры является квартирой, где then вызывается.

Задача с учетом квартиры — это задача, которая распакует интерфейс среда выполнения Windows IAsyncInfo или задачу, убывающую от такой задачи. Таким образом, если вы планируете продолжение задачи с учетом квартиры в среда выполнения Windows STA, продолжение будет выполняться в этом STA.

Продолжение задачи, не относяющейся к квартире, будет выполняться в контексте, который выбирает среда выполнения.

task_continuation_context::use_synchronous_execution

Возвращает объект контекста продолжения задачи, представляющий контекст синхронного выполнения.

Синтаксис

static task_continuation_context use_synchronous_execution();

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

Контекст синхронного выполнения.

Замечания

Метод use_synchronous_execution заставляет задачу продолжения синхронно выполняться в контексте, что приводит к завершению задачи с отступом.

Если задача antecedent уже завершена при присоединении продолжения, продолжение выполняется синхронно в контексте, который присоединяет продолжение.

См. также

Пространство имен concurrency