我刚刚遇到了一些代码:
var task = Task.Run(async () => { await Foo.StartAsync(); });
task.Wait();
Run Code Online (Sandbox Code Playgroud)
(不,我不知道其内部运作方式Foo.StartAsync()).我最初的反应是摆脱async/ await并重写为:
var task = Foo.StartAsync();
task.Wait();
Run Code Online (Sandbox Code Playgroud)
这是否正确(再一次,一无所知Foo.StartAsync()). 这个答案与它有什么不同 - 用Task.Run运行'异步'动作委托......似乎表明可能存在可能有意义的情况,但它也说"说实话,我没有"看到很多场景......"