WORDS
Task: Run och FromResult
Utför en uppgift
Om man vill exekvera en uppgift i en egen tråd, men inte vill administrera trådpooler eller manuellt hålla koll på om uppgiften har utförts, så kan man använda Task.Run. Den resulterande Task som skapas innehåller information om huruvida den har kastat exception, avslutats korrekt eller avbrutits.
Task task = Task.Run(() =>
{
// Gör något långsamt i en annan tråd
});
Ett framtida värde
Task<T> kan modellera ett framtida värde T. Genom att returnera från Run kan man få ett sådant värde:
Task<int> futureResult = Task.Run(() =>
{
// Gör en långsam beräkning i en annan tråd
return 2 + 2;
});
Den resulterande Task<int> som skapats här, håller information om huruvid värdet har beräknats klart, eller om funktionen har kastat exception eller avbrutits.
Om man behöver en Task<T>, men redan har värdet beräknat, kan man använda FromResult:
Task<int> futureResult2 = Task.FromResult(4);