Windowsがどのようにプログラムを認識して応答しないのですか?
Windowsを使用したことのある人なら誰でも、プログラムが応答していないというシステムメッセージを時々見ていますが、Windowsはそれをどのように正確に認識しているのでしょうか。本日のSuperUser Q&Aの投稿には、困った読者の質問に対する答えがあります。.
本日の質疑応答セッションは、コミュニティ主導のQ&A Webサイトのグループである、Stack Exchangeの下位区分であるSuperUserの好意により提供されます。.
写真提供:マティアスリップ(Flickr).
質問
SuperUserの読者ArunPrasanthは、プログラムが応答していないことをWindowsがどのように認識しているかを知りたいと考えています。
プログラムが応答していない場合、Windowsはどのようにして認識しますか?実行中のすべてのアプリケーションを常にポーリングしていますか?
プログラムが応答していない場合、Windowsはどのように認識しますか?
答え
SuperUserコントリビュータラチェットフリークは私達のために答えを持っています:
アプリケーションは、Windowsによって提供されたキューからイベントを取得します。たとえば、長い計算を実行するなど、アプリケーションがしばらく(5秒間)イベントキューをポーリングしない場合、Windowsはアプリケーションがハングアップしていると見なし、ユーザーに警告します。.
それを回避するには、アプリケーションは高価な計算をワーカースレッドにプッシュするか処理を分割し、キューが定期的にポーリングされるようにする必要があります。.
説明に追加するものがありますか?コメントで音を消す。他の技術に精通したStack Exchangeユーザーからの回答をもっと読みたいですか?こちらのディスカッションスレッドをチェックしてください。.