2011-11-11 42 views
-1

我使用的是由蘋果公司描述的技術Observing Process Lifetimes Without Polling來觀察任意進程。在沒有輪詢的情況下觀察進程生存期非常緩慢?

我使用了那裏提到的所有三種技術的確切源代碼。但是迴應非常緩慢,有時甚至不起作用。

文檔中是否有任何缺失?

+0

該文章的最後一次修訂是2008年......這就像20狗年。你在寫什麼類型的應用程序(即它是一個GUI應用程序,還是它是一個守護進程或代理)? NSWorkspace方法應該仍然有效,但是我已經嘗試過了好幾年了,並且我看到這些通知提供了MacOS 10.6以上的一些新信息。 –

+0

我正在編寫與守護進程通信有關啓動或關閉任意進程的應用程序。 – MacGeek

回答

1

Ahhhh ...你給我的關鍵字我一直在尋找。你想監視進程,而不是應用程序。如果您嘗試捕獲非常規Macintosh應用程序以外的非AppKit應用程序或命令行進程,則無法使用NSWorkspace解決方案。

請嘗試關注kqueue解決方案。

如果這不好,請查看Apple技術說明中的「面向服務的備選方案」部分。如果你重新考慮一下你的方法,你可以使用launchd來完成你想要做的事情。

+0

我嘗試使用NSWorkspace解決方案來捕獲Appkit應用程序。它的響應時間非常可怕並且不可靠。我也試過kqueue解決方案,但它沒有響應。可能是我做錯了什麼。我會再試一次。 – MacGeek

+0

使用kqueue,我可以管理關閉進程。但不是過程的啓動。你知道如何使用kqueue來管理啓動事件嗎? – MacGeek

相關問題