为什么ContinueWhenAll和ContinueWhenAny有不受支持的TaskContinuationOptions?

时间:2012-02-06 12:34:52

标签: .net-4.0 task-parallel-library

当我浏览MSDN和其他书籍的文档时,我发现这两个函数都有一个接受TaskContinuationOption的重载。但他们可以根据这句话抛出异常:

  

从多个任务中删除延续的特定延续种类是无效的。

它们似乎只允许TaskContinuationOptions.AttachedToParent,LongRunning,PreferFairness,ExecuteSynchronously和None,类似于TaskCreationOption枚举。

为什么会这样?

1 个答案:

答案 0 :(得分:3)

嗯,无效的NotOn *和OnlyOn * TaskContinueOption值描述单个任务的继续选项。哪个不行,ContinueWhenAll()和ContinueWhenAny()方法可以使用 set 任务。检查选项并抛出ArgumentOutOfRange异常的内部方法名为“CheckMultiTaskContinuationOptions”,强调 MultiTask