Compartilhar via


Classe task_handle

A classe task_handle representa um item de trabalho paralelo individual. Ela encapsula as instruções e os dados necessários para executar um trabalho.

Sintaxe

template<
    typename _Function
>
class task_handle : public ::Concurrency::details::_UnrealizedChore;

Parâmetros

_Function
O tipo do objeto de função que será invocado para executar o trabalho representado pelo objeto task_handle.

Membros

Construtores públicos

Nome Descrição
task_handle Constrói um novo objeto task_handle. O trabalho da tarefa é executado invocando a função especificada como um parâmetro para o construtor.
~task_handle Destructor Destrói o objeto task_handle.

Operadores públicos

Nome Descrição
operador() O operador de chamada de função que o runtime invoca para executar o trabalho do identificador de tarefa.

Comentários

os objetos task_handle podem ser usados em conjunto com um structured_task_group ou um objeto ou mais geral task_group, para decompor o trabalho em tarefas paralelas. Para saber mais, confira Paralelismo da tarefa.

Observe que o criador de um objeto task_handle é responsável por manter o tempo de vida do objeto criado task_handle até que ele não seja mais exigido pelo Runtime de Simultaneidade. Normalmente, isso significa que o objeto task_handle não deve se destruir até que o método ou wait o run_and_wait de task_group ou structured_task_group, ao qual ele está enfileirado tenha sido chamado.

os objetos task_handle normalmente são usados em conjunto com lambdas C++. Como você não sabe o tipo verdadeiro do lambda, a função make_task normalmente é usada para criar um objeto task_handle.

O runtime cria uma cópia da função de trabalho que você passa para um objeto task_handle. Portanto, todas as alterações de estado que ocorrem em um objeto de função que você passa para um objeto task_handle não aparecerão na cópia desse objeto de função.

Hierarquia de herança

task_handle

Requisitos

Cabeçalho: ppl.h

Namespace: concurrency

operador()

O operador de chamada de função que o runtime invoca para executar o trabalho do identificador de tarefa.

void operator()() const;

task_handle

Constrói um novo objeto task_handle. O trabalho da tarefa é executado invocando a função especificada como um parâmetro para o construtor.

task_handle(const _Function& _Func);

Parâmetros

_Func
A função que será invocada para executar o trabalho representado pelo objeto task_handle. Pode ser um functor lambda, um ponteiro para uma função ou qualquer objeto que dê suporte a uma versão do operador de chamada de função com a assinatura void operator()().

Comentários

O runtime cria uma cópia da função de trabalho que você passa para o construtor. Portanto, todas as alterações de estado que ocorrem em um objeto de função que você passa para um objeto task_handle não aparecerão na cópia desse objeto de função.

~task_handle

Destrói o objeto task_handle.

~task_handle();

Confira também

Namespace de simultaneidade
Classe task_group
Classe structured_task_group