我最近在阅读一些使用大量异步方法的代码,但有时需要同步执行它们。代码确实:Foo foo = GetFooAsync(...).GetAwaiter().GetResult();这是一样的吗?Foo foo = GetFooAsync(...).Result;?
3 回答
一只甜甜圈
TA贡献1836条经验 获得超5个赞
差不多。虽然有一个小的区别:如果Task
失败,GetResult()
只会抛出直接造成的异常,同时Task.Result
会抛出一个AggregateException
。但是,使用其中任何一个时有async
什么意义呢?100x更好的选择是使用await
。
此外,你不打算使用GetResult()
。它仅适用于编译器,不适合您。但如果你不想讨厌AggregateException
,请使用它。
- 3 回答
- 0 关注
- 5022 浏览
添加回答
举报
0/150
提交
取消