2011-11-03 7 views
2

NSWorkspace를 사용하여 application is launched or closed인지 확인하고 싶습니다.시작 데몬에서 Appkit 프레임 워크 사용

하지만 프로세스는 Launch Daemon이며 Apple 설명서에는 스레드 안전하지 않음이 나와 있습니다.

그러나 Workspace를 사용하는 코드 부분은 시작 또는 로그인시 실행되지 않습니다. BSD 통신을 통해 다른 응용 프로그램에서받은 명령을 실행 한 후 실행되며 프로세스가 UI가없는 백그라운드 프로세스입니까?

이 상황에서 Appkit 프레임 워크를 사용하는 것이 안전합니까? NSWorkspace API 만 있고 다른 것은 없습니까? 다른 해결책은 폴링입니까? 당신의 제안은 무엇입니까?

답변

1

일반적으로 특정 시간에 쓰레딩 방지 작업이 무엇이든간에 하나의 작업 만 수행하는 경우 스레드 안전하지 않은 코드를 사용할 수 있습니다. 나는 당신이하고있는 일을 동시에 할 수 없다는 것을 알고 있어야한다. 만약 당신이 절대적으로 무언가를 동시에 수행해야한다면, 코드 주위에 두 개의 동기화 된 블럭을 던질 수있다. 장기 실행 백그라운드 프로세스 또는 위임 호출.