2

タスクの進行状況に関連付けられたprogressIndicatorを中断せずに、javafxバックグラウンドタスクが実行されているかどうかをどのように確認しますか。

try
{
AddMeteorParents amp = new AddMeteorParents(textOpenDB.getText(), textMeteorData.getText(), DatabaseTools.meteorVersion.Meteor14);
proIndAddData.setVisible(true);
proIndAddData.progressProperty().bind(amp.progressProperty());
Thread th = new Thread(amp);
th.setDaemon(true);
th.start();
}

クラスAddMeteorParentsは、Taskから拡張されています。ProIndAddDataは、javafxの進行状況インジケーターです。th.join()またはth.isAlive()を追加すると、javafx progressIndicatorが機能しなくなりますか?タスクが完了したらメッセージを表示したいと思います。

4

3 に答える 3

1

ExecutorServiceを使用して、(progressIndicatorsを中断することなく)バックグラウンドタスクを次々に実行することができました。

ExecutorService eservice = Executors.newFixedThreadPool(1);
于 2013-02-13T19:25:15.743 に答える
0

javafx.concurrent.Taskのjavadocは次のように述べています。

状態の変化に一般的に反応する

場合によっては、進行状況、メッセージ、テキストを更新するタスクを作成したり、タスクで状態が変化するたびに他の方法で反応したりすることがあります。たとえば、タスクの失敗、成功、実行中、またはキャンセルされた状態の変更に関するステータスメッセージを変更したい場合があります。

http://docs.oracle.com/javafx/2/api/javafx/concurrent/Task.html#onSucceededProperty

于 2013-02-13T16:45:06.340 に答える
0

javafx.concurrent.Taskタスクコードをラップするために使用しますstateProperty。これがチェックが必要なものです。

私の要点を参照してくださいhttps://gist.github.com/John-Chan/ee6b783c6e96c09c79a03a3da8fe14c4

于 2019-05-15T16:01:24.320 に答える