【发布时间】:2018-06-06 18:05:40
【问题描述】:
我是 C# 异步编程的新手,需要看看以下哪种方法是处理 Task 对象的首选方法。
我有一个班级可以这样做:
var value = this.SomeFunction(...);
var innerValue = await Task.FromResult(value.Result);
Somefunction 如下所示。
protected async Task<JObject> Somefunction(..)
{
..
returns JBoject
..
}
这可以正常工作。现在,我有一个建议,我不应该将Task.FromResult 与async 函数一起使用。
相反,我应该使用类似的东西:
var innerValue = await value; //..this works fine too
但我不太确定为什么第一个不是完成相同事情的好习惯。 任何线索都会有所帮助。 谢谢
【问题讨论】:
-
您对 Task.FromResult(value.Result) 有什么期望?从值任务中获取结果(这很糟糕,因为隐式等待)并用任务包装该值,只是为了等待获得结果
标签: c# asynchronous async-await task