【发布时间】:2011-09-11 03:07:47
【问题描述】:
我有一个作为 Java SwingWorker 运行的 Socket 服务器。
SwingWorker 接收传入的连接,并在连接后将套接字移交给负责连接的 Executor。 Executor 调用一个 SocketHandler,它将通过 run() 方法处理套接字。
现在,我在 GUI 上有一个按钮,上面写着停止。当我按下停止按钮时,我想停止 SwingWorker 的执行。为此,我在按下停止按钮时调用了一个 cancel(true) 方法。
现在,尽管我的程序调用了 cancel(true) 方法,SocketHandler 仍继续接收传入数据。这是怎么回事?
我已经阅读了几篇文章,这是 JDK 中的一个错误,即调用 cancel(true) 方法不会停止 SwingWorker。这是真的吗?
【问题讨论】:
标签: java swing swingworker