有些情况下,我想要有条件地运行任务。我使用某种形式的扩展方法是这样的:在TPL中返回一个空的静态任务是一个坏习惯?
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将已经完成,所以基本上,如果我不想做任何事情,我刚回到这个任务,而不是空或新空任务。
我有一种感觉,这种方法应该有一些小故障。任何人都可以看到吗?
如果你打算使用这种方法,像你这样的,而使用'不启动一个虚工TaskCompletionSource'。 – 2013-03-22 13:09:56
或者只是Task.FromResult – 2013-03-22 20:45:17