2

NSWorkspace を使用して、アプリケーションが起動または終了しているかどうかを確認したい。

しかし、プロセスは Launch Daemon であり、Apple のドキュメントによるとスレッドセーフではありません。

ただし、Workspace を使用するコードの一部は、起動時またはログイン時に実行されません。BSD通信経由で他のアプリから何らかのコマンドを受信した後に実行され、処理はUIなしのバックグラウンド処理ですか?

この状況で Appkit フレームワークを使用しても安全ですか? NSWorkspace API だけで他にはありませんか? 代替ソリューションはポーリングですか? あなたの提案は何ですか?

4

1 に答える 1

1

一般に、スレッドセーフではない操作を一度に 1 つだけ実行する限り、スレッド セーフではない任意のコードを使用できます。私は先に進んで試してみますが、何をしていても同時に実行できないことに注意してください.何かを同時に実行する必要がある場合は、コードの周りにいくつかの @synchronized ブロックを投げてみることができます。長時間実行されるバックグラウンド プロセス、またはデリゲート呼び出し。

于 2011-11-03T13:44:54.263 に答える