2012-02-06 60 views
2

當我瀏覽MSDN和其他書籍的文檔時,我發現兩個函數都有一個接受TaskContinuationOption的重載。但他們可以根據此聲明拋出異常:爲什麼ContinueWhenAll和ContinueWhenAny具有不受支持的TaskContinuationOptions?

排除多個任務的延續的特定延續種類是無效的。

看來,他們只允許TaskContinuationOptions.AttachedToParent,LongRunning,PreferFairness,ExecuteSynchronously和無,類似於TaskCreationOption枚舉。

這是爲什麼?

回答

3

那麼,無效的NotOn *和OnlyOn * TaskContinueOption值描述了單個任務的繼續選項。哪些不會這樣做,ContinueWhenAll()和ContinueWhenAny()方法與任務的集合一起工作。檢查選項並引發ArgumentOutOfRange異常的內部方法名爲「CheckMultiTaskContinuationOptions」,重點在MultiTask