gpt4 book ai didi

ios - 如果一个操作失败,如何取消操作队列中的后续操作

转载 作者:可可西里 更新时间:2023-11-01 01:37:57 24 4
gpt4 key购买 nike

我在一个队列中有几个操作,并一个一个地设置依赖关系。如果一个操作失败,我希望取消所有后续操作。但是在调用 [queue cancelAllOperations] 之后,操作不会从队列中删除或停止它们。取消操作不会自动将它们从队列中移除或停止当前正在执行的操作。对于排队等待执行的操作,队列必须在识别操作已取消并将其移动到完成状态之前尝试执行操作。我怎样才能取消所有剩余的操作?谢谢。

最佳答案

NSOperation 有一个 cancelled 属性,您可以在单个操作上显式设置该属性,或者通过 NSOperationQueue 响应 cancelAllOperations 消息。操作应在其 main 方法中检查此属性。对于将快速完成的操作,不值得执行此检查。如果一个操作需要很长时间(几秒或更长时间),它应该周期性地做这样的事情:

- (void)main {
\\ ...do work...

if (self.isCancelled) {
\\ ...get out...
}
}

This blog很好地解释了这个概念!

关于ios - 如果一个操作失败,如何取消操作队列中的后续操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33516747/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com