【发布时间】:2015-04-27 00:58:16
【问题描述】:
工作线程用于处理非常长时间运行的任务。在任务执行的中间,需要用户交互来获取输入。随着输入的提供,工作线程将恢复执行。我的问题是,工作线程需要暂停,获取输入(我们应该通过对话框说 - 我正在使用 JDK8u40 的 Dialogs API,它必须由 JavaFX 应用程序线程提供便利),然后恢复。由于某些情况的依赖性,一开始没有提供输入,并且可能需要多次输入。
一个典型的例子是,文件从一个目录复制到另一个目录。当文件被复制时,目标目录中存在同名文件,因此需要用户交互来重命名文件或跳过文件复制以避免文件名冲突。在这种情况下,工作线程应该执行文件复制,并且需要暂停以获取用户的输入(必须由 JavaFX 应用程序线程提供便利)才能继续。 Platform.runlater(() -> {});不能做这种情况,因为它只会让 Runnable 对象在未来某个时间运行。
如何促进这种情况?我是 JavaFX 并发的新手。
【问题讨论】:
标签: java multithreading concurrency javafx