当前位置: 首页 > 编程语言 > C#

对于表示返回void的操作的任务,Task.FromResult()的替代方法是什么?分享

时间:2023-04-10 14:26:58 C#

对于表示返回void的操作的任务,Task.FromResult()的替代方法是什么?在没有泛型类型参数的情况下返回任务的最佳方法是什么?换句话说,任务是否代表一个不返回任何内容或返回void的函数?换句话说,我正在寻找以下替代方法:Tvalue=default(T);返回Task.FromResult(值);//和vartcs=newTaskCompletionSource();tcs.SetResult(值);返回tcs.Task;但是对于代表不应返回任何内容的操作的任务。TaskextendsTask-因此仅使用Task.FromResult并提供空结果是相当常见的。例如:Taskret=Task.FromResult(null);(或者使用值类型——这真的没关系。)当然,由于任务是不可变的,你可以创建一个单例实例并返回完成任务时返回它。(我相信这是async/await基础结构所做的事实-或者至少在beta版本中所做的......)正如Asad所说,您可以使用Task.CompletedTask,但Task.CompletedTask是.NET4.6的目标。(实际上,它是否支持.NET4.5尚不清楚-文档显示“.NETFramework4.6和4.5”作为版本号,但随后说“支持:4.6”...)我不确定这是否是严格的惯用语,但我使用Task.CompletedTask。通常使用Task.FromResult,但在所有情况下,我可以争辩说CompletedTask的工作方式相同并且在语义上更有意义。C#教程就是这样:对于表示返回void的操作的任务,Task.FromResult()的替代方法是什么?如果所有分享的内容对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: