Task t = Task.Run(async () => { await someAsyncMethod(); });
t.Wait();
这是否意味着当t.Wait()
等待时,该线程被用于其他东西而不只是坐在那里等待任务完成?仅仅因为我使用了async () => { await someAsyncMethod(); }
?
答案 0 :(得分:6)
Wait
将阻止调用线程。
要进行非阻塞等待,请使用await
:
await Task.Run(async () => { await someAsyncMethod(); });
但是,Task.Run
通常只应用于CPU绑定方法,因此您更有可能这样做:
await someAsyncMethod();
答案 1 :(得分:-2)
我遇到了类似的问题并使用了:
var t = Task.Run(async () => { await someAsyncMethod(); });
t.Result;
这似乎不会阻止该线程。