Share via


task_handle-klasse

De task_handle klasse vertegenwoordigt een afzonderlijk parallel werkitem. Hierin worden de instructies en de gegevens ingekapseld die nodig zijn om een stuk werk uit te voeren.

Syntaxis

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

Parameterwaarden

_Functie
Het type van het functieobject dat wordt aangeroepen om het werk uit te voeren dat wordt vertegenwoordigd door het task_handle-object.

Leden

Openbare constructors

Naam Description
task_handle Maakt een nieuw task_handle object. Het werk van de taak wordt uitgevoerd door de functie aan te roepen die is opgegeven als een parameter voor de constructor.
~task_handle destructeur Vernietigt het task_handle object.

Openbare operators

Naam Description
operator() De functie-aanroepoperator die door de runtime wordt gebruikt om het werk van de taakhouder uit te voeren.

Opmerkingen

task_handle objecten kunnen worden gebruikt in combinatie met een structured_task_group of meer algemeen task_group object om werk in parallelle taken op te splitsen. Zie taakparallellismevoor meer informatie.

Houd er rekening mee dat de maker van een task_handle object verantwoordelijk is voor het onderhouden van de levensduur van het gemaakte task_handle object totdat het niet meer nodig is voor de Gelijktijdigheidsruntime. Normaal gesproken betekent dit dat het task_handle object niet mag worden vernietigd totdat de wait of run_and_wait methode van het task_group of structured_task_group waarop het in de wachtrij staat, is aangeroepen.

task_handle objecten worden doorgaans gebruikt in combinatie met C++ lambdas. Omdat u het ware type lambda niet weet, wordt de functie make_task doorgaans gebruikt om een task_handle object te maken.

De runtime maakt een kopie van de werkfunctie die u doorgeeft aan een task_handle object. Daarom worden alle statuswijzigingen die optreden in een functieobject dat u doorgeeft aan een task_handle object, niet weergegeven in uw kopie van dat functieobject.

Overnamehiƫrarchie

task_handle

Requirements

Koptekst: ppl.h

Naamruimte: concurrentie

operator()

De operator die door de runtime wordt aangeroepen om de functie uit te voeren die het werk van het taakobject verricht.

void operator()() const;

taakgreep

Maakt een nieuw task_handle object. Het werk van de taak wordt uitgevoerd door de functie aan te roepen die is opgegeven als een parameter voor de constructor.

task_handle(const _Function& _Func);

Parameterwaarden

_Func
De functie die wordt aangeroepen om het werk uit te voeren dat wordt vertegenwoordigd door het task_handle-object. Dit kan een lambda functor, een aanwijzer naar een functie of een object zijn dat een versie van de operator voor functieoproep ondersteunt met de handtekening void operator()().

Opmerkingen

De runtime maakt een kopie van de werkfunctie die u doorgeeft aan de constructor. Daarom worden alle statuswijzigingen die optreden in een functieobject dat u doorgeeft aan een task_handle object, niet weergegeven in uw kopie van dat functieobject.

~task_handle

Vernietigt het task_handle object.

~task_handle();

Zie ook

concurrentie Namespace
task_group-klasse
structured_task_group-klasse