我编写了一个需要从服务器接收信息的程序。我使用异步线程来实现这一点。但是当用户点击另一个项目时,会启动一个新线程。如果由于网络问题而第一个尚未完成,则第二个线程结束并设置UI信息。然后第一个结束并再次覆盖它。那么当用户点击另一个项目时,如何停止第一个线程?
我知道了:
Thread asyncThread = new Thread(task);
asyncThread.start();
但是从我在Thread对象中看到的,没有办法停止该线程(只是弃用.stop()),但我不想在新程序中使用已弃用的东西。
答案 0 :(得分:0)
在JavaFX中,建议使用Service,服务提供方法,如stop(),cancel(),restart()......查看我对这个JavaFX GUI stuck的回答,以显示如何使用Service。