C# 返回任务的两种方法之间的差异
这两种方法在语义上有什么区别C# 返回任务的两种方法之间的差异,c#,async-await,C#,Async Await,这两种方法在语义上有什么区别 public Task DoSomething() { return Task.Run(() => MyFunction()); } public async Task DoSomethingAsync() { await Task.Run(() => MyFunction()); } 我是否应该在两者之间做出选择?实际的区别在于: 第一个方法将调用任务。运行并返回结果任
public Task DoSomething()
{
return Task.Run(() => MyFunction());
}
public async Task DoSomethingAsync()
{
await Task.Run(() => MyFunction());
}
我是否应该在两者之间做出选择?实际的区别在于:
任务。运行并返回结果任务
任务。运行,然后将一个延续排队,当该任务完成时,该延续将继续执行您的方法
async/await
相反,如果您需要“等待”任务完成,则需要执行更多操作,然后使用
async/await
我确信有例外,但我还没有找到任何例外
在这两种方法中,选择第一种。这是一个库/框架还是一个基于特定框架构建的应用程序在异常传播和同步上下文处理方面有很大的不同,请检查。所以在上面的示例中,第一种方法在这种情况下更好?@EhsanSajjad,是的,它更好。。。