WORDS
Task
, async
och await
i C#: Introduktion
I C# finns olika sätt att hantera concurrency, samtidig exekvering. Jag förespråkar Task
s, vilket är ämnet för den här artikelserien. Vi går igenom hur Task
s fungerar och några metoder som man kan använda med dom, och hur syntaxen för async
/await
ofta underlättar användandet av Task
s. Det finns två huvudsakliga användningsområden för Task
s:
- En uppgift. Något som utförs i bakgrunden.
- Ett framtida värde. En stor beräkning, svar på request eller något annat som tar lång tid.
Man kan använda trådar för samma syften, men Task
s förenklar i många fall. En Task
:
- Låser inte tråden med synkrona anrop.
- Använder automatiskt en trådpool.
- Liknar Javascripts promises.
Dom skiljer sig mot trådar:
Task
s kan inte avbrytas: det finns ingen metodAbort
. Istället finns enCancellationToken
, men enTask
måste själv bestämma om den vill kontrollera om det ska avbrytas.- En enda
Task
-kedja kan köras i många trådar.