如果你的意思是多個延續。一個可能的解決方案可能是這樣的。
class Program
{
public class TaskState
{
public bool Ended { get; set; }
}
static void Main(string[] args)
{
var task = Task.FromResult("Stackoverflow");
var state = new TaskState();
task.ContinueWith((result, continuationState) =>
{
Console.WriteLine("in first");
}, state).ContinueWith((result, continuationState) =>
{
if (!state.Ended)
Console.WriteLine("in second");
state.Ended = true;
}, state).ContinueWith((result, continuationState) =>
{
if (!state.Ended)
Console.WriteLine("in third");
state.Ended = true;
}, state);
Console.ReadLine();
}
}
我不知道如何在一般情況下有幫助。 「ContinueWith」可能不是最後一個。 –
@JohnSaunders,我不確定我是否理解你的陳述。也許我的例子太蹩腳了。我對創建三個任務的場景感興趣。第一個完成,因爲它開始。第二個(以及所有中間任務)被跳過,因爲第三個在第一個完成之前被添加。 – Brannon
也許你的實際問題更好的例子會更有意義。 –