当前位置: 首页 > 知识库问答 >
问题:

任务的备选方案是什么。表示返回void[重复]的操作的任务的FromResult

怀飞掣
2023-03-14

返回没有泛型类型参数的任务的最佳方法是什么?换言之,任务表示不返回任何内容或返回void的操作?

换句话说,我正在寻找以下方面的替代方案:

T value = default(T);
return Task.FromResult<T>(value); // and

var tcs = new TaskCompletionSource<T>();
tcs.SetResult(value);
return tcs.Task;

但是对于表示不应该返回任何内容的操作的任务。

共有2个答案

楚俊逸
2023-03-14

<代码>任务

Task ret = Task.FromResult<object>(null);

(或者使用值类型-这真的没什么关系。)

当然,由于任务是不可变的,您可以创建此任务的单例实例,并在每次希望返回已完成的任务时返回它。(事实上,我相信async/await基础架构就是这样做的——或者至少在beta版中是这样做的……)

如Asad所述,您可以使用任务。CompletedTask,但仅当您确定目标时。净额4.6。(实际上,不清楚它是否支持.NET 4.5-文档显示版本号为“.NET Framework 4.6和4.5”,然后说“支持于:4.6”…)

何升
2023-03-14

我不确定这是否是严格的惯用语,但我使用任务。CompletedTask为此。一个任务。FromResult常用,但在所有场景中,我可以想到CompletedTask的工作方式相同,并且在语义上更有意义。

 类似资料:
  • 我想创建一个任务来运行串行命令。此时,我不需要从正在进行工作的方法返回任何内容。这可能会在以后发生变化,但我现在很好奇这是如何发生的。 这就是我所拥有的。我想为任务使用单独的方法,而不是创建匿名操作。我尝试返回void,结果是“void不能显式转换为任务”。我也试过了<代码>任务 在此过程中,我使用了一个线程来完成这项任务,但这次我想使用任务。 预计到达时间: 最后,这是我的完整解决方案

  • 问题内容: 我正在学习如何推动使用gruntjs。我找到了服务器任务,但我不明白这一点。 我可以在不将源文件移动或放置在Web服务器根目录下的情况下,使用服务器任务映射串联/缩小的文件来测试我的应用程序(使用ribs.js)吗?例如没有Apache。 如果否,服务器任务的预期用途是什么? 问题答案: 该任务用于将路径设置为Web根目录来启动静态服务器。 示例:作为: 它的功能类似于Apache服务

  • 我想了解更多关于ConnectedAndroidTest分级任务的信息。我看到它是用来安装应用程序和测试APK以及运行测试的。 但它的具体步骤是什么?(分级任务(如果有))

  • 任务是项目管理中最小单位。任务是一个具体的工作,有明确的负责人和截止时间,比如需要在某个特定的时间段内完成某项工作。

  • JavaFX 8任务和服务之间有什么区别,在哪种情况下使用一个比另一个更好?数据库操作用什么比较好?