首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >关闭多线程NSDocument

关闭多线程NSDocument
EN

Stack Overflow用户
提问于 2010-02-23 04:11:35
回答 1查看 205关注 0票数 3

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

EN

回答 1

Stack Overflow用户

发布于 2010-02-23 05:31:28

最好的可能方法是让线程拥有所需的对象,以便完成它正在做的任何事情,从而能够尽可能快地中止处理和终止。

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

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

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2313813

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档