【发布时间】:2013-03-11 20:48:37
【问题描述】:
在某些情况下,我希望有条件地运行任务。我使用某种扩展方法,如下所示:
public static class MyTaskExtension{
private static Task theEmptyTask = Task.Factory.StartNew(() => {}); //This is the question
public static Task ContinueWith(this Task task, Task continuationTask, Func<bool> condition)
{
if condition(){
... do the work
}
return theEmptyTask;
}
}
我的期望是 theEmptyTask 已经完成,所以基本上如果我不想做任何事情,我只返回这个任务,而不是返回 null 或新的空任务。
我觉得这种方法应该有一些小故障。有人能看到吗?
【问题讨论】:
-
如果你打算使用这种方法,不要像你一样开始一个虚拟任务,而是使用
TaskCompletionSource。 -
或者只是Task.FromResult
标签: c# static task-parallel-library task