我已经实现了一个必须等待特定过程完成的类(使用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