为了账号安全,请及时绑定邮箱和手机立即绑定

Task.Result和.GetAwaiter.GetResult()一样吗?

Task.Result和.GetAwaiter.GetResult()一样吗?

C#
德玛西亚99 2019-09-19 16:48:14
我最近在阅读一些使用大量异步方法的代码,但有时需要同步执行它们。代码确实:Foo foo = GetFooAsync(...).GetAwaiter().GetResult();这是一样的吗?Foo foo = GetFooAsync(...).Result;?
查看完整描述

3 回答

?
一只甜甜圈

TA贡献1836条经验 获得超5个赞

差不多。虽然有一个小的区别:如果Task失败,GetResult()只会抛出直接造成的异常,同时Task.Result会抛出一个AggregateException。但是,使用其中任何一个时有async什么意义呢?100x更好的选择是使用await

此外,你不打算使用GetResult()。它仅适用于编译器,不适合您。但如果你不想讨厌AggregateException,请使用它。


查看完整回答
反对 回复 2019-09-19
  • 3 回答
  • 0 关注
  • 5093 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号