Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Cria uma compilação assíncrono em tempo de execução do windows com base em um objeto fornecido usuário lambda ou função.O tipo de retorno de create_async é um de IAsyncAction^, de IAsyncActionWithProgress<TProgress>^, de IAsyncOperation<TResult>^, ou de IAsyncOperationWithProgress<TResult, TProgress>^ baseado na assinatura lambda passado para o método.
template<
typename _Function
>
auto create_async(
const _Function& _Func
) -> decltype(ref new details::_AsyncTaskGeneratorThunk<_Function>(_Func));
Parâmetros
_Function
_Func
O objeto lambda ou função de que para criar uma compilação assíncrono em tempo de execução do windows.
Valor de retorno
Uma compilação assíncrono é representada por um ^ de IAsyncAction^, de IAsyncActionWithProgress<TProgress>, por ^ de IAsyncOperation<TResult>, ou por um ^ de IAsyncOperationWithProgress<TResult, TProgress>.A interface retornado depende da assinatura lambda passado a função.
Comentários
O tipo de retorno do método determina se a compilação é uma ação ou operação.
Lambdas que retorna a causa vaga a criação de ações.Lambdas que retorna um resultado da causa de TResult de tipo a criação de operações de TResult.
O método também pode retornar task<TResult> que encapsula o trabalho aysnchronous dentro de se ele é a seguir de uma cadeia das tarefas que representam o trabalho assíncrono.Em esse caso, o próprio método é executado internamente, desde que as tarefas que são executados de forma assíncrona, e o tipo de retorno lambda é desempacotado para gerar a compilação assíncrono retornada por create_async.Isso significa que um método que retorna uma tarefa<void> fará com que a criação de ações, e um método que retorna uma tarefa<TResult> fará com que a criação de operações de TResult.
O método pode ter um ou outro zero, um ou dois argumentos.Os argumentos são válidos progress_reporter<TProgress> e cancellation_token, em essa ordem se ambos são usados.Um lambda sem argumentos faz com que a criação de uma compilação assíncrona sem o recurso para o relatório de progresso.Um método que recebe um progress_reporter<TProgress> fará com que create_async retorna uma compilação assíncrono que relata o andamento do tipo TProgress cada vez de report o método do objeto de progress_reporter é chamado.Um método que recebe um cancellation_token pode usar esse token para verificar cancelamento, ou passe-o às tarefas que cria para que o cancelamento de compilação assíncrono faz com cancelamento de essas tarefas.
Se o corpo do objeto lambda ou função retorna um resultado (e não uma tarefa<TResult>), o lamdba será executado de forma assíncrona MTA dentro do processo no contexto de uma tarefa que o tempo de execução cria implicitamente para ele.O método de IAsyncInfo::Cancel causará cancelamento de tarefa implícita.
Se o corpo do método retorna uma tarefa, o lamba executa em linha, e declarando o método para tomá-lo a um argumento de tipo cancellation_token pode acionar cancelamento de todas as tarefas que você criar no lambda passando em esse token quando você as cria.Você também pode usar o método de register_callback no símbolo para fazer com que o tempo de execução chama um retorno de chamada quando você chama IAsyncInfo::Cancel na operação ou em ação de async gerada.
Essa função só está disponível para apps de Windows Store .
Requisitos
Cabeçalho: ppltasks.h
Simultaneidade denamespace:
Consulte também
Referência
Outros recursos
cancelation_token Class