JavaFX 停止线程

标签 java multithreading asynchronous javafx

我编写了一个需要从服务器接收信息的程序。我使用异步线程来实现这一点。但是,当用户单击另一个项目时,就会启动一个新线程。如果第一个线程尚未完成(例如由于网络问题),则第二个线程将结束并设置 UI 信息。然后第一个结束并再次覆盖它。那么,当用户单击另一个项目时,如何停止第一个线程呢?

我明白了:

Thread asyncThread = new Thread(task);
asyncThread.start();

但是从我在 Thread 对象中看到的情况来看,没有办法停止线程(只能弃用 .stop()),但我不想在新程序中使用已弃用的东西。

最佳答案

在JavaFX中建议使用Service,服务提供诸如stop()、cancel()、restart()之类的方法...看看我对此的回答JavaFX GUI stuck展示如何使用服务。

关于JavaFX 停止线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17255558/

相关文章:

python - 将 Twisted 的 @inlineCallbacks 与 Tornado 的 @gen.engine 结合使用

javascript - 如何让 window.onbeforeunload 等待动画?

java - 删除列表中包含某些单词的项目的有效方法?

java - BufferedImage 类

java - 为动态添加的按钮添加全局键盘快捷键

c++ - 如何让它同步运行?

java - 有没有一种简单的方法可以在java中并行化foreach循环?

c# - 如何在 C# 中向 Web 服务并行发出多个请求

javascript - 在angularjs中链接资源

java - Jython 中的 Sikuli 与 Java 中的 Sikuli 有什么区别吗?