SW *_*Dog 3 c# async-await c#-4.0
我\xe2\x80\x99已经使用以下形式的代码在基线上工作:
\n\nVar result = await Task.FromResult(_someObject.SomeNonAsyncMethod(someParameterObject));\nRun Code Online (Sandbox Code Playgroud)\n\n根据我对Task.FromResult的理解,这只是将对象包装成结果形式,而不是将方法包装成任务以异步执行。因此,这些操作增加了额外的开销,但没有任何好处。
\n\n这种理解正确吗?
\n\n使用await 对性能有什么帮助吗?
\n\n是否应该以这种方式使用await Task.FromResult?(考虑单独使用这条线 - 不实现接口或在测试中等)
\n\n预先感谢您的任何见解!
\n像这样将两半放在同一行代码中是没有用的。然而,函数将其同步结果打包在 a 中Task以符合接口是很有用的。
在某些情况下,一个函数甚至可能同时具有同步和异步执行。例如,在快速本地缓存中可能存在同步查找,而在缓存未命中时可能存在缓慢的网络操作。像这样的函数必须有一个Task返回类型,这意味着同步退出需要从已知的结果构造一个任务。