2011-12-17 4 views
2

メインスレッドの時間消費操作によってGUIがフリーズしたときを検出したい。 私の目標は、待ちカーソルを自動的に設定したり、解除したりすることです。メインスレッドがJavaでGUIをフリーズするときを検出する方法は?

おかげ

+5

あまり意味がありません。 GUIがフリーズしている場合は、待機カーソルを設定できません。GUIはフリーズしています。 –

+1

@blow Reapaint Managerでは、イベントDispash Threadですべてのイベントを抽出し、違反をチェックすることは可能ですが、なぜですか?(AWT、Swingおよびその派生物について話している場合)一瞬でEDTが(画面に出力され)、 – mKorbel

+0

@blow: 'swing'タグが追加されます。私が間違っている場合に修正してください。 – home

答えて

5

私はあなたが本末転倒だと思う:あなたのメインスレッドが最初の場所で任意の時間のかかる操作を行うべきではありません - あなたのように、彼らは常に、別のスレッドで外部化する必要がありますGUIは応答性を保つことができます(たとえば、操作のステータスを表示するか、操作を中止する可能性を提供するなど)。

2

GUIスレッドのスタックトレースをポーリングして、スレッドがアイドルかビジーかを判断するスレッドを持つことができます。ビジー状態が頻繁に発生する場合は、実行中の処理(スタックトレース)をログに記録することができます。当初は、すべての非アイドルスタックトレースを記録し、どのスタックトレースがログに値するものではないかを調べるのは面白いかもしれません。

関連する問題