當使用NSThread
的detachNewThreadSelector:toTarget:withObject:
時,我發現如果用戶在後臺進程執行時試圖退出應用程序,那麼線程將在應用程序終止正常之前完全完成其執行。在應用程序退出之前,分離的NSThreads會始終完成嗎?
在這種情況下,這是我所期望的行爲,但我無法在Apple的文檔中找到任何暗示這總是如此的情況。唯一相關的信息我能找到的就是以下,從蘋果公司的Threading Programming Guide:
從這個重要信息:在應用程序退出時,脫離線程可以立即終止,但可連接線程不能。必須在允許退出進程之前連接每個可連接的線程。因此,在線程正在執行不應中斷的關鍵工作(如將數據保存到磁盤)的情況下,可連接線程可能更可取。
所以,我知道超脫線程可以在應用程序退出時被終止,但他們曾經將自動終止?或者,我是否安全地假定該線程在應用程序退出前會完成其執行?
感謝您的解釋! – cky880