gpt4 book ai didi

iphone - 引用 NSOperation 实例并调用 -isFinished 是否安全?

转载 作者:行者123 更新时间:2023-11-29 13:45:43 25 4
gpt4 key购买 nike

每次我的应用程序启动或退出事件时,我都会创建一个 NSOperation。我需要使用依赖项将它们排入队列,以便两个永远不会同时执行,而是一个接一个地执行。

这样做安全吗?

  • 在 App Delegate 中持有对 NSOperation 对象的强引用。
  • 当应用退出事件状态时,只需检查 hat 属性是否不为 nil。
  • 如果不为nil,检查当前的NSOperation -isFinished
  • 如果完成,只需将新的添加到队列中即可。
  • 如果还没有完成,创建新的并设置对运行的依赖,然后将其添加到队列中。

我有点担心这里的多线程问题。 -isFinished 或 -addDependency: 方法的文档并未说明不应从主线程调用它们。所以我想这样做是可以的。

编辑:NSOperation 在后台执行一些文件系统操作。

最佳答案

如果您想确保它们不会同时被调用,请将 NSOperationQueue 上的 maximumConcurrentOperationCount: 设置为 1。

- (void)setMaxConcurrentOperationCount:(NSInteger)count

这假设您将两个 NSOperations 放在同一个队列中。

回答您的其他问题。我不确定你在做什么——但是是的,如果你愿意,你可以在 AppDelegate 上强烈引用你的 NSOperation,你可以检查 isFinished

关于iphone - 引用 NSOperation 实例并调用 -isFinished 是否安全?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7486334/

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