2010-09-03 3 views
0

Je développe une application c objective et je voudrais détecter les fenêtres non responsives même si elles ne sont pas propres à mon application. Existe-t-il un moyen d'être averti lorsqu'un tel cas se produit?détecter les fenêtres non réactives dans mac os x

Merci d'avance pour votre aide,

Cordialement,

+1

Je pense que vous confondez Windows avec les applications. Ce sont des applications qui se bloquent, pas des fenêtres. –

Répondre

1

Je pense que la seule façon de détecter si une fenêtre est suspendue est de détecter lorsque son application est suspendue. Et je pense que la seule façon de le faire - de manière fiable - est d'en parler. Envoyez-lui un message inter-processus et attendez une action. Je pense que c'est exactement la façon dont le système le détecte: il y a un certain délai avant que la boule de plage n'apparaisse. Et c'est parce que le système a envoyé un message et n'a reçu aucune réponse en x secondes.

Quel genre de message cela pourrait être difficile à dire. Doit être quelque chose qui traverse la boucle d'événement principal mais peut être envoyé par chaque application. Je suis sûr que Google nous aidera à le trouver. Je ne suis pas pro dans les communications inter-processus et je devrais chercher aussi.

+0

Merci pour l'idée, je vais continuer à chercher de cette façon. –

1

Vous pouvez utiliser l'application Instruments avec une piste d'instrument "Spin Monitor". Si vous le réglez sur "Tous les processus", il capture les traces de pile chaque fois qu'une application se bloque (ne traite pas la boucle d'événement principale pendant longtemps).

alt text