1

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

收到:

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

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

4

1 回答 1

0

在 JavaFX 中,建议使用 Service,服务提供诸如 stop()、cancel()、restart() 之类的方法……看看我对这个JavaFX GUI的回答,以显示如何使用 Service。

于 2013-06-22T21:44:00.120 回答