我正在处理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)时触发。 –