Класс 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 уже завершена при присоединении продолжения, продолжение выполняется синхронно в контексте, который присоединяет продолжение.