Classe task_continuation_context

A classe task_continuation_context permite que você especifique onde gostaria que uma continuação fosse executada. Isso é útil somente para o uso dessa classe por meio de um aplicativo do Windows Runtime. Para aplicativos que não são do Windows Runtime, o contexto de execução da continuação da tarefa é determinado pelo tempo de execução, e não é configurável.

Sintaxe

class task_continuation_context : public details::_ContextCallback;

Membros

Métodos públicos

Nome Descrição
get_current_winrt_context Retorna um objeto de contexto de continuação da tarefa que representa o contexto da thread winrt atual.
use_arbitrary Cria um contexto de continuação da tarefa que permite que o Runtime escolha o contexto de execução para uma continuação.
use_current Retorna um objeto de contexto de continuação da tarefa que representa o contexto de execução atual.
use_default Cria o contexto de continuação da tarefa padrão.
use_synchronous_execution Retorna um objeto de contexto de continuação da tarefa que representa o contexto de execução síncrono.

Hierarquia de herança

_ContextCallback

task_continuation_context

Requisitos

Cabeçalho: ppltasks.h

Namespace: concurrency

get_current_winrt_context

Retorna um objeto de contexto de continuação da tarefa que representa o contexto da thread winrt atual.

Sintaxe

static task_continuation_context get_current_winrt_context();

Valor retornado

O contexto atual da thread do Windows Runtime. Retorna um task_continuation_context vazio se chamado de um contexto não Windows Runtime.

Comentários

O método get_current_winrt_context captura o contexto de thread do Windows Runtime do chamador. Ele retorna um contexto vazio para chamadores não Windows Runtime.

O valor retornado por get_current_winrt_context pode ser usado para indicar ao Runtime que a continuação deve ser executada no modelo de apartamento do contexto capturado (STA vs MTA), independentemente de a tarefa precedente estar ciente do apartamento. Uma tarefa com reconhecimento de apartamento é uma tarefa que desencapsula uma interface IAsyncInfo do Windows Runtime ou uma tarefa que é descendente de tal tarefa.

Esse método é semelhante ao método use_current, mas também está disponível para código C++ nativo sem suporte à extensão C++/CX. Destina-se ao uso por usuários avançados que gravam código de biblioteca agnóstico de C++/CX para chamadores nativos e do Windows Runtime. A menos que você precise dessa funcionalidade, recomendamos o método use_current, que só está disponível para clientes C++/CX.

use_arbitrary

Cria um contexto de continuação da tarefa que permite que o Runtime escolha o contexto de execução para uma continuação.

Sintaxe

static task_continuation_context use_arbitrary();

Valor retornado

Um contexto de continuação de tarefa que representa um local arbitrário.

Comentários

Quando esse contexto de continuação for usado, a continuação será executada em um contexto que o runtime escolher, mesmo que a tarefa precedente esteja ciente do apartamento.

use_arbitrary pode ser usado para desativar o comportamento padrão para uma continuação em uma tarefa com reconhecimento de apartamento criada em um STA.

Esse método só está disponível para aplicativos do Windows Runtime.

use_current

Retorna um objeto de contexto de continuação da tarefa que representa o contexto de execução atual.

static task_continuation_context use_current();

Valor de Devolução

O contexto de execução atual.

Comentários

Esse método captura o contexto do Windows Runtime do chamador para que as continuações possam ser executadas no apartamento certo.

O valor retornado por use_current pode ser usado para indicar ao Runtime que a continuação deve ser executada no contexto capturado (STA vs MTA), independentemente de a tarefa precedente estar ciente do apartamento. Uma tarefa com reconhecimento de apartamento é uma tarefa que desencapsula uma interface IAsyncInfo do Windows Runtime ou uma tarefa que é descendente de tal tarefa.

Esse método só está disponível para aplicativos do Windows Runtime.

use_default

Cria o contexto de continuação da tarefa padrão.

static task_continuation_context use_default();

Valor de Devolução

O contexto de continuação padrão.

Comentários

O contexto padrão será usado se você não especificar um contexto de continuação ao chamar o método then. Em aplicativos do Windows para o Windows 7 e anteriores, bem como aplicativos da área de trabalho no Windows 8 e superiores, o runtime determina onde as continuações de tarefa serão executadas. No entanto, em um aplicativo do Windows Runtime, o contexto de continuação padrão para uma continuação em uma tarefa com reconhecimento de apartamento é o apartamento em que then é invocado.

Uma tarefa com reconhecimento de apartamento é uma tarefa que desencapsula uma interface IAsyncInfo do Windows Runtime ou uma tarefa que é descendente de tal tarefa. Portanto, se você agendar uma continuação em uma tarefa com reconhecimento de apartamento em um Windows Runtime STA, a continuação será executada nesse STA.

Uma continuação em uma tarefa sem reconhecimento de apartamento será executada em um contexto escolhido pelo Runtime.

task_continuation_context::use_synchronous_execution

Retorna um objeto de contexto de continuação da tarefa que representa o contexto de execução síncrono.

Sintaxe

static task_continuation_context use_synchronous_execution();

Valor retornado

O contexto de execução síncrona.

Comentários

O método use_synchronous_execution força a tarefa de continuação a ser executada de forma síncrona no contexto, causando a conclusão da tarefa precedente.

Se a tarefa anterior já tiver sido concluída quando a continuação estiver anexada, a continuação será executada de forma síncrona no contexto que anexa a continuação.

Confira também

Namespace de simultaneidade