JavaFXプログラムにListViewのIPアドレスのリストがあるので、これらのアドレスを定期的にループして、それぞれにINetAddress.isReachableを呼び出します。問題は各呼び出しにタイムアウトが関連付けられていることです。つまり、使用できないアドレスのタイムアウトを待機している間にプログラムがハングします。これに対する自然な解決策はスレッディングですが、UIがぶら下がるのを防ぐ方法を見つけられません。私はJavaFx's concurrent packageを試してみましたが、新しいスレッドでタイマーでタイマータスクを実行しようとしました。ここで明白な何かが欠けていると感じます。JavaFx - InetAddressからのタイムアウトを待っている間にUIがハングしないようにする
使用してJavaFXの同時実行:
Task task = new Task() {
@Override
protected Object call() throws Exception {
while(true) {
checkEachIP();
Thread.sleep(5000);
}
}
};
new Thread (task).start();
Executors Frameworkを採用するのに適していると思います。 (私はJavaFXの経験はありません) このように、各チェックは別々のタスクになる可能性があります。 – Piohen
これはまともなイントロです。http://winterbe.com/posts/2015/04/07/java8-concurrency-tutorial-thread-executor-examples/ – Piohen
'checkEachIP()'は何をしていますか? –