Executor Serviceを使用してスイングワーカーを実行しようとしていますが、何か不思議なことが起きています。私は現在、方法newSingleThreadExecutor();
を使用しているだけでなく、以下を実行しています。Executor Service Freezingとの混乱
Future<?> f = execService.submit(swingWorker);
JOptionPane.showMessageDialog(null, "Created Future");
f.get(120, TimeUnit.SECONDS);
私のスイングワーカーコードは、ダイアログメッセージボックスを閉じない限り完全に実行されます。ダイアログボックスを閉じると、アプリケーションが完全にフリーズします。私はスレッドがブロックされていると信じていますが、理由は不明です。
execServiceの助けを借りずにスイングワーカーを単独で実行すると、完璧に動作しますが、タイムアウト機能は利用できません。私は代わりにタイマーを使うべきですか?
おかげ
スイングワーカーの目的が何であるかを少し詳しく説明し、デッドロックの原因を特定するのに役立ちます。 – 01es
問題を示す短い*完全な*プログラムを投稿できますか? –