2
A
回答
2
的Task
类添加到FutureTask
一堆功能,但所有的非明显的部位是与提供观察到性能,并确保它们被更新的FX应用程序线程做。这听起来像你不需要任何困难的部分:你正在查询任务来检查它的进度(所以你不需要可观察性,即当进度改变时调用回调)并且你没有FX应用程序线程在其上安排更新。
因此,举例来说,如果你想跟踪进展情况,只是相应的属性添加到您的Callable
实现。如果你想进步是从多个线程访问,使用原子引用内部表示进度(或者至少使其volatile
):
import java.util.concurrent.Callable ;
import java.util.concurrent.atomic.AtomicLong ;
public class MyCountingTask implements Callable<Void> {
private AtomicLong progressCount = new AtomicLong();
private final long max = 1000 ;
@Override
public Void call() throws InterruptedException {
for (int count = 0; count < max ; count++) {
progressCount.set(count);
// in real life, do actual work instead of sleeping...
Thread.sleep(100);
}
progressCount.set(max);
return null ;
}
public double getProgress() {
return 1.0*progressCount.get()/max ;
}
}
相关问题
- 1. JavaFX - 等待任务完成
- 2. 任务队列和非幂等任务
- 3. 并发任务更新复杂对象JavaFX - swingworker等效?
- 4. JavaFX System.currentTimeMillis()+任务
- 5. JavaFX 2.2 onLoad方法等效
- 6. 如何从等待非一般任务
- 7. JavaFX任务通信
- 8. 非弃用等效
- 9. JavaFX任务,服务 - 异常
- 10. 异步任务到Java等效
- 11. 任务。继续等效于RX
- 12. JavaFX任务结束和JavaFX线程
- 13. JavaFX更新文本任务
- 14. 完成监控javafx任务
- 15. JavaFX 2.0中postinit {}块的等效代码
- 16. $。活动在任何非客户端等效?
- 17. 与任务无效任务翻译例外并行库一拉等待
- 18. 效果链 - CSS等效于javafx中的effect.setInput
- 19. Spring 3.1:注释驱动的事务管理的非XML等效
- 20. Raspbian JavaFX非常非常慢
- 21. 无法启动JavaFX任务使用Thread.start()
- 22. JavaFX:任务不会更新UI
- 23. JavaFX网络后台任务与javafx.concurrent
- 24. JavaFX任务线程不终止
- 25. javafx中的连续运行任务?
- 26. JavaFX - 取消任务不起作用
- 27. JavaFX中的并发 - 任务未完成
- 28. JavaFX并发任务设置状态
- 29. JavaFX中运行的后台任务
- 30. JavaFX任务:updateMessage()写入哪里?
看看[FutureTask(https://开头的文档。 oracle.com/javase/7/docs/api/java/util/concurrent/FutureTask.html#get())和[Executor](https://docs.oracle.com/javase/7/docs/api/java /util/concurrent/Executor.html) – jhamon
FutureTask支持无进度更新 – Hesk
您能澄清“非JavaFX应用程序”吗? – jhamon