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 retorno
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 retorno
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.