2010-02-22 84 views
3

我有一個基於NSDocument Cocoa的應用程序,我有一對夫婦,我需要正常終止輔助線程的(等他們通過電流回路運行),當用戶關閉文檔窗口或當應用程序退出。我正在使用canCloseDocumentWithDelegate在文檔關閉時向線程發送標誌,然後在完成時,其中一個調用[NSDocument close]。當用戶關閉文檔窗口時,這似乎很有用,但當你退出應用程序時,它會出現各種錯誤(在調用任何東西之前崩潰)。什麼是這樣的正確的程序?關閉多線程NSDocument

回答

4

最好的方式是線程擁有必要的線程完成做什麼它做成能夠中止處理,並儘可能快地終止點的對象。

在非GC下,這意味着-retain線程-release完成後。對於GC而言,它只是對所需對象的硬引用。

如果有某種冗長的處理,這必須去和必須文件被關閉之前完成,然後用進度條掉落表,並留下文檔模式,直到完成(光圈和iPhoto中做正是這個)。