任何人都可以教育我为什么以下冻结完成lambda后:
return await Task.Run(() =>
{
return SuperLongMethod();
})
Run Code Online (Sandbox Code Playgroud)
......但是以下工作符合预期:
return Task.Run(() =>
{
return SuperLongMethod();
}).GetAwaiter().GetResult();
Run Code Online (Sandbox Code Playgroud)
似乎第一个版本中的Task.Run无法识别lambda已完成.我在我的代码中有其他示例,我使用第一个版本没有问题,所以我不知道有什么区别.
为清楚起见,SuperLongMethod()进行Web服务调用,并对结果数据进行大量后处理