【发布时间】:2011-05-13 20:34:05
【问题描述】:
我正在实现一个方法Task<Result> StartSomeTask() 并且碰巧在调用该方法之前已经知道结果。如何创建已经完成的Task<T>?
这是我目前正在做的事情:
private readonly Result theResult = new Result();
public override Task<Result> StartSomeTask()
{
var task = new Task<Result>(() => theResult);
task.RunSynchronously(CurrentThreadTaskScheduler.CurrentThread);
return task;
}
有没有更好的解决方案?
【问题讨论】:
-
注意,这个问题的答案也适用于创建一个普通的任务(没有
),因为 Task 继承自 Task。 -
请注意,今天有
ValueTask用于已完成的任务(即对于您已经拥有的值,因此代码基本上是同步的),这将为您节省分配。
标签: c# .net task-parallel-library