Task.Run(()=>{})
puts the action delegate into the queue and returns the task .
Is there any benefit of having async/await within the Task.Run()
?
I understand that Task.Run()
is required since if we want to use await directly, then the calling method will need to be made Async and will affect the calling places.
Here is the sample code which has async await within Task.Run()
. The full sample is provided here: Create pre-computed tasks.
Task.Run(async () => { await new WebClient().DownloadStringTaskAsync("");});
Alternatively this could have been done:
Task.Run(() => new WebClient().DownloadStringTaskAsync("").Result;);
Since both, Task.Run()
and Await will queue the work and will be picked by the thread pool, could the async/await within the Task.Run()
be a bit redundant?
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…