gpt4 book ai didi

c++ - 关闭多线程 NSDocument

转载 作者:太空狗 更新时间:2023-10-29 21:08:51 26 4
gpt4 key购买 nike

我有一个基于 NSDocument 的 Cocoa 应用程序,我有几个辅助线程,当用户关闭文档窗口或应用程序退出时,我需要正常终止它们(等待它们运行完当前循环)。我正在使用 canCloseDocumentWithDelegate 在文档关闭时向线程发送一个标志,然后当它们完成时,其中一个调用 [NSDocument close]。当用户关闭文档窗口时,这似乎很有效,但是当您退出应用程序时,它会出现各种错误(在调用任何东西之前崩溃)。像这样的事情的正确程序是什么?

最佳答案

最好的方法是让线程拥有线程完成它正在做的任何事情所必需的对象,直到能够中止处理并尽快终止。

在非 GC 下,这意味着 -retain 线程在完成时 -release。对于 GC,它只是对所需对象的硬引用。

如果有某种必须继续并且必须在文档关闭之前完成的冗长处理,则放下带有进度条的工作表并离开文档模式直到完成(Aperture 和 iPhoto 都这样做)。

关于c++ - 关闭多线程 NSDocument,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2313813/

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