【发布时间】:2013-04-05 05:24:13
【问题描述】:
谁能告诉我为什么在完成 lambda 后会冻结:
return await Task.Run(() =>
{
return SuperLongMethod();
})
...但以下内容按预期工作:
return Task.Run(() =>
{
return SuperLongMethod();
}).GetAwaiter().GetResult();
第一个版本中的 Task.Run 似乎无法识别 lambda 已完成。我的代码中有其他示例,我使用第一个版本没有问题,所以我不知道有什么区别。
为清楚起见,SuperLongMethod() 调用 Web 服务并对结果数据进行大量后处理
【问题讨论】:
标签: c# task-parallel-library .net-4.5 async-await c#-5.0