gpt4 book ai didi

iphone - NSOperations 队列和处理应用程序退出

转载 作者:行者123 更新时间:2023-12-03 19:10:05 27 4
gpt4 key购买 nike

我将创建一系列 NSOperation 并在队列中运行它们。

它们都是按顺序运行的,一次运行一个。

这些操作将从网络获取数据并创建和保存核心数据管理对象。

如何处理应用程序退出的情况?由于操作在分离线程中运行,如何让主线程等待,直到当前操作“安全”退出?在某些情况下,我很高兴线程(操作)在完成之前退出,因为在进一步的应用程序启动时,作业将继续并从中断的地方继续。

非常感谢,

迈克

最佳答案

设计您的操作,以便它们在适当的安全时间(开始时、操作的一个阶段完成后等)检查其 isCancelled 属性,并在此时退出。在 applicationWillTerminate 中,向操作队列发送一条 -cancelAllOperations 消息,然后发送一条 -waitUntilAllOperationsAreFinished 消息。这将阻塞,直到队列中的所有操作完成。如果所有操作都正确处理 isCancelled,那么应用程序退出速度不会太慢。

需要注意的一件事是,当从 applicationWillTerminate 调用时,-waitUntilAllOperationsAreFinished 将在主线程上阻塞。如果您的任何操作在主线程上执行选择器,您的应用程序将在此时卡住。

关于iphone - NSOperations 队列和处理应用程序退出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1566230/

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