だから私はswingアプリケーションを持っています。ボタンを押すと、ワーカースレッドが起動します。メイン ウィンドウを閉じても、JVM は引き続き実行され、ワーカー スレッドは中断されることなく無期限に継続します。ウィンドウが閉じられたときにワーカースレッドを終了させたい。
質問する
401 次
2 に答える
1
デーモン以外のすべてのスレッドが終了すると、JVM は終了します。ワーカー スレッドはデーモンではないため、JVM を終了できません。ワーカースレッドをデーモンにするだけです:
workerThread.setDaemon(true);
もう 1 つの方法はinterrupt()
、メイン ウィンドウを閉じるときにスレッドにアクセスすることですが、それには と の処理が必要isInterrupted()
ですInterruptedException
。
于 2012-08-25T18:59:40.787 に答える
1
ウィンドウが閉じられたときにアプリケーション全体を終了させたい場合は、これを使用できます。
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
ワーカースレッドのみを停止し、他のことをしたい場合。フレームに WindowListener を登録し、onWindowClosing コールバックでイベント タイプを確認して、必要なことを行うことができます。
于 2012-08-25T19:03:08.727 に答える