ホームページ >Java >&#&チュートリアル >JavaFX `Platform.runLater` と `Task`: GUI の更新にはどちらを使用する必要があるか?
JavaFX の Platform.runLater と Task: それぞれを使用する場合と相違点
JavaFX は、GUI スレッドでタスクを実行するための 2 つのメカニズムを提供します。 Platform.runLater とタスク。それぞれをいつ使用するかを理解すると、GUI の応答性とコードの可読性が大幅に向上します。
Platform.runLater
重要な計算を実行しない迅速かつ単純な操作には、Platform.runLater を使用します。または完了までに長い時間がかかります。例:
タスク
より複雑で時間のかかる操作にはタスクを使用します。このクラスは、次のような追加機能を提供します。
Golden使用規則
一般的なガイドラインは、非 GUI スレッド内から GUI を更新するために Platform.runLater を使用することです。必要な場合にタスクを使用します。
GUIスレッド
Platform.runLater と Task は両方とも、メイン GUI スレッドとは別に動作するワーカー スレッドを作成します。これにより、同時実行の問題が発生することなく、バックグラウンド スレッドから GUI を安全に更新できます。
例: 長い計算
長い計算を実行し、 GUI の進行状況バーを更新します。 Platform.runLater を使用すると、多数の小さなタスクでイベント キューがあふれ、GUI の速度が低下します。代わりに、Task を使用して別のスレッドで計算を実行し、必要に応じて進行状況を GUI に報告します。
Task<Void> task = new Task<>() { @Override public Void call() { for (int i = 0; i < 100000; i++) { updateProgress(i, 100000); } return null; } }; bar.progressProperty().bind(task.progressProperty()); new Thread(task).start();
この場合、bar は計算として更新される GUI の進行状況バーです。進歩します。
以上がJavaFX `Platform.runLater` と `Task`: GUI の更新にはどちらを使用する必要があるか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。