我已經實現了一個必須等待特定過程完成的類(使用NSWorkspace openFile:withApplication
開始)。runningApplications返回終止的進程?
我試過[[NSWorkspace sharedWorkspace] runningApplications]
,並不會返回正在運行的進程的數組。但它仍然包含我要監視的進程,即使此進程不再運行(它從活動監視器中消失,並且不會顯示在top
命令中)。
有沒有人有線索如何正確監視進程?檢查terminated
屬性或processIdentifier
屬性並不能解決問題(terminated
仍然爲NO
,並且processIdentifier
包含有效的查找過程ID)。
'[[ [NSWorkspace sharedWorkspace] runningApplications]在您調用它時返回正在運行的應用程序。我以這種方式測試它:1.我啓動了計算器應用程序。 2.調用'[[NSWorkspace sharedWorkspace] runningApplications]'3.退出計算器應用程序4.調用runningApplications。 它工作完美:計算器應用程序出現在第2步,但不是在第4步。我不知道你是如何使用它。 – Sudo 2015-02-23 15:10:19
我用一個do-while循環嘗試了它,它只包含一個'[NSThread sleepForTimeInterval:2]'和while語句中正在運行的進程的檢查。 – Alex 2015-02-24 06:32:06
似乎正是這種睡眠引起的問題。 – Alex 2015-02-24 08:39:32