有没有办法找出一个任务是否已经有了续集?我想要给一个已存在的任务添加续集,但只有当该任务还没有续集时才添加,就像这样:
void RequestUpdate()
{
if (_updateTask.IsCompleted)
{
_updateTask = TakeASnapshotOfTheCurrentStateAndUpdateAsync();
}
else
{
if (_updateTask.HasNoContinuation){ // how do I check for this?
_updateTask.ContinueWith(() => RequestUpdate())
}
}
}
还有没有更好的方法来编写这种逻辑呢?
await
_updateTask
并调用RequestUpdate
-- 确保只执行一次,通过跟踪该任务完成。这里不适合使用 Continuations。 - Jeroen Mostert_updateTask.IsCompleted
可能会立即变为true
,在执行else
之前。此外,在使用ContinueWith()
后,您需要将任务变量分配给返回值,例如_updateTask = _updateTask.ContinueWith(() => RequestUpdate())
。 - Matthew WatsonTakeASnapshotOfTheCurrentStateAndUpdateAsync
吗? - Fildor