2010-02-22 86 views
3

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

回答

4

最好的方式是线程拥有必要的线程完成做什么它做成能够中止处理,并尽可能快地终止点的对象。

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

如果有某种冗长的处理,这必须去和必须文件被关闭之前完成,然后用进度条掉落表,并留下文档模式,直到完成(光圈和iPhoto中做正是这个)。