以下两段代码在概念上是否有区别:
async Task TestAsync()
{
await Task.Run(() => DoSomeWork());
}
还有
Task TestAsync()
{
return Task.Run(() => DoSomeWork());
}
生成的代码是否也有所不同?
编辑: 为了避免与 Task.Run
混淆,一个类似的例子:
async Task TestAsync()
{
await Task.Delay(1000);
}
还有
Task TestAsync()
{
return Task.Delay(1000);
}
后期更新: 除了公认的答案之外,LocalCallContext
的处理方式也有所不同: CallContext。即使在没有异步的情况下,LogicalGetData 也会得到恢复。为什么?