обнаружить не реагирующие окна в Mac OS X - PullRequest
0 голосов
/ 03 сентября 2010

Я разрабатываю целевое приложение c и хотел бы обнаружить неотвечающие окна, даже если они не принадлежат моему приложению.Есть ли способ получить уведомление, когда происходит такой случай?

Заранее спасибо за помощь,

С уважением,

Ответы [ 2 ]

1 голос
/ 04 сентября 2010

Я думаю, что единственный способ определить, зависло ли окно, - это определить, когда зависает его приложение.И я думаю, что единственный способ - надежно - сделать это - поговорить с ним.Отправьте ему какое-то межпроцессное сообщение и дождитесь действия.Я думаю, что именно так система это обнаруживает: до появления пляжного мяча есть некоторая задержка.И это потому, что система отправила сообщение и не получила ответа в течение x секунд.

Что это за сообщение, трудно сказать.Должно быть что-то, что проходит через основной цикл событий, но может быть отправлено каждым приложением.Я уверен, что Google поможет вам найти его.Я не профессионал в межпроцессных коммуникациях, и мне тоже придется искать.

1 голос
/ 03 сентября 2010

Вы можете использовать приложение Instruments с треком инструментов Spin Monitor.Если вы установите его для мониторинга «Все процессы», он будет фиксировать трассировки стека всякий раз, когда приложение зависает (не обрабатывает основной цикл событий в течение длительного времени).

alt text

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...