wait Task.FromResult 有什么好处吗?

SW *_*Dog 3 c# async-await c#-4.0

我\xe2\x80\x99已经使用以下形式的代码在基线上工作:

\n\n
Var result = await Task.FromResult(_someObject.SomeNonAsyncMethod(someParameterObject));\n
Run Code Online (Sandbox Code Playgroud)\n\n

根据我对Task.FromResult的理解,这只是将对象包装成结果形式,而不是将方法包装成任务以异步执行。因此,这些操作增加了额外的开销,但没有任何好处。

\n\n

这种理解正确吗?

\n\n

使用await 对性能有什么帮助吗?

\n\n

是否应该以这种方式使用await Task.FromResult?(考虑单独使用这条线 - 不实现接口或在测试中等)

\n\n

预先感谢您的任何见解!

\n

Ben*_*igt 5

像这样将两半放在同一行代码中是没有用的。然而,函数将其同步结果打包在 a 中Task以符合接口是很有用的。

在某些情况下,一个函数甚至可能同时具有同步和异步执行。例如,在快速本地缓存中可能存在同步查找,而在缓存未命中时可能存在缓慢的网络操作。像这样的函数必须有一个Task返回类型,这意味着同步退出需要从已知的结果构造一个任务。