谁能告诉我为什么在完成 lambda 后会冻结以下内容:
return await Task.Run(() =>
{
return SuperLongMethod();
})
...但以下工作按预期工作:
return Task.Run(() =>
{
return SuperLongMethod();
}).GetAwaiter().GetResult();
似乎第一个版本中的 Task.Run 无法识别 lambda 已完成。我的代码中有其他示例,我使用第一个版本没有问题,所以我不知道有什么区别。
为清楚起见,SuperLongMethod() 进行 Web 服务调用并对结果数据进行大量后处理