WORDS
Task: Delay
Oftast vill man att ens kod ska köra så snabbt som möjligt, men ibland behöver man lägga in en fördröjning. Istället för Thread.Sleep
kan man skapa en task som avslutas efter det angivna antalet millisekunder med Task.Delay
.
private async Task<int> CalculateDelay()
{
// Vänta i 3 sek
await Task.Delay(3000);
var result = 2 + 2;
// Vänta i ytterligare 3 sek
await Task.Delay(3000);
return result;
}
Detta gör att exekveringen av metoden pausar, utan att tråden blockeras. En annan fördel är att en fördröjning med Task.Delay
går att avbryta med en CancellationToken
. Vi återkommer till det i ett senare inlägg.