这两种方法之间的语义差异是什么?
public Task DoSomething()
{
return Task.Run(() => MyFunction());
}
public async Task DoSomethingAsync()
{
await Task.Run(() => MyFunction());
}
Run Code Online (Sandbox Code Playgroud)
有什么我应该考虑在一个或另一个之间做出选择吗?
实际差异是这样的:
Task.Run并返回结果任务Task.Run,然后排队延续,当此任务完成时,将继续执行您的方法就"我应该选择哪一个"而言,这是我使用的一般准则:
如果所有方法都要与任务相关,那就是返回它们然后不要使用
async/await
If,相反,你需要"等待"任务完成,然后做更多的事情,然后使用async/await.
我相信这有例外,但我还没有找到.
所以在这两种方法中,选择第一种方法.
| 归档时间: |
|
| 查看次数: |
62 次 |
| 最近记录: |