我正在處理task.GetAwaiter()面臨的一個問題任務OnCompleted觸發OnCompleted(新動作)任務並行 - 上畢竟ContinueWith
我有多個ContinueWith一個主要任務,但是當我返回主要任務並在OnCompleted上添加一個委託,它會在處理完主任務後觸發,而不是在所有ContinueWith之後觸發。我的問題是,有沒有辦法知道何時完成所有繼續?
這是我目前的代碼。
runningTask.Start();
runningTask.GetAwaiter().OnCompleted(() =>
{
KeyValuePair<int, Func<bool>> validator = validationList.FirstOrDefault(x => x.Key == runningTask.Id);
bool shouldContinue = validator.Value();
if (shouldContinue)
{
validationList.Remove(validator.Key);
PerformExecutionByQueue();
}
});
runningTask是這樣
Task runningTask = new Task(delegate method);
Task secondTask = runningTask.ContinueWith(delegate method);
等創建。 。 。
請您正在使用的語言標記這一點。 –
完成,感謝@RamanShah – DevEstacion
你到底想幹什麼?如果要在任務完成時執行某些操作,只需在_proper_任務上使用ContinueWith。 TaskAwaiter主要由編譯器使用,如果OnComplete始終在特定任務完成執行時觸發,而不是在任務狀態發生更改(例如,RanToCompletion,Cancelled或Faulted)時觸發。 –