Delen via


Lichtgewicht taken

In dit document wordt de rol van lichtgewicht taken in de Gelijktijdigheidsruntime beschreven. Een lichtgewicht taak is een taak die u rechtstreeks vanuit een concurrency::Scheduler of concurrency::ScheduleGroup object plant. Een lichtgewicht taak lijkt op de functie die u aan de Functie CreateThread van de Windows-API opgeeft. Daarom zijn lichtgewicht taken handig wanneer u bestaande code aanpast om de planningsfunctionaliteit van de Gelijktijdigheidsruntime te gebruiken. De Concurrency Runtime zelf maakt gebruik van lichtgewicht taken om asynchrone agents te plannen en berichten te verzenden tussen asynchrone berichtblokken.

Aanbeveling

De Gelijktijdigheidsruntime biedt een standaardplanner en daarom hoeft u er geen te maken in uw toepassing. Omdat task scheduler u helpt bij het verfijnen van de prestaties van uw toepassingen, raden we u aan om te beginnen met de PPL (Parallel Patterns Library) of de Asynchrone agents-bibliotheek als u niet bekend bent met de Gelijktijdigheidsruntime.

Lichte taken vereisen minder rekenkracht dan asynchrone agents en taakgroepen. De runtime informeert u bijvoorbeeld niet wanneer een lichtgewicht taak is voltooid. Bovendien worden uitzonderingen die vanuit een lichtgewicht taak worden gegenereerd, in de runtime niet onderschept of verwerkt. Zie Uitzonderingsafhandeling voor meer informatie over het verwerken van uitzonderingen en lichtgewicht taken.

Voor de meeste taken raden we u aan om robuustere functionaliteit te gebruiken, zoals taakgroepen en parallelle algoritmen, omdat u hiermee complexere taken gemakkelijker kunt opsplitsen in eenvoudigere taken. Zie Taakparallellisme voor meer informatie over taakgroepen. Zie Parallelle algoritmen voor meer informatie over parallelle algoritmen.

Als u een lichtgewicht taak wilt maken, roept u concurrency::ScheduleGroup::ScheduleTask, concurrency::CurrentScheduler::ScheduleTask of concurrency::Scheduler::ScheduleTask aan. Als u wilt wachten tot een lichtgewicht taak is voltooid, wacht u totdat de bovenliggende scheduler wordt afgesloten of gebruikt u een synchronisatiemechanisme zoals een 'concurrentie::gebeurtenis' object.

Voorbeeld

Zie Overzicht: Bestaande code aanpassen om lichtgewicht taken te gebruiken, voor een voorbeeld waarin u ziet hoe u bestaande code aanpast om lichtgewicht taken te gebruiken.

Zie ook

Taakplanner
Handleiding: Bestaande code aanpassen om lichtgewicht taken te gebruiken