小编Sea*_*ean的帖子

Task.Run冻结

任何人都可以教育我为什么以下冻结完成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服务调用,并对结果数据进行大量后处理

c# task-parallel-library async-await c#-5.0 .net-4.5

0
推荐指数
1
解决办法
1614
查看次数