我想创建一个已完成的任务(不是任务<T>)。net中是否内置了一些功能来实现这一点?
一个相关的问题: 创建一个已完成的任务<T>
我想创建一个已完成的任务(不是任务<T>)。net中是否内置了一些功能来实现这一点?
一个相关的问题: 创建一个已完成的任务<T>
当前回答
你可以使用nito .AsyncEx. taskconstants .完成自Stephen Cleary的一个很棒的库。
其他回答
适用于。net 4.6及以上版本
return Task.CompletedTask;
对于低版本,您可以使用
return new Task(() => { });
最新版本的。net (v4.6)就是增加了一个内置任务。CompletedTask:
Task completedTask = Task.CompletedTask;
该属性被实现为无锁单例,因此您几乎总是在使用相同的已完成任务。
如何:
#pragma warning disable 1998
public async Task emptyTask() {
}
#pragma warning restore 1998
如果您不介意的话,可以省略警告抑制。
你可以使用nito .AsyncEx. taskconstants .完成自Stephen Cleary的一个很棒的库。
你可以使用Task。FromResult(在。net 4.5中)返回一个完成的Task<T>。
如果你需要一个非泛型任务,你总是可以使用Task. fromresult(0)或类似的方法,因为Task<T>是Task的子类。