1

我正在构建一个应用程序,其中我将拥有一个 SwingWorker 线程,该线程本身会衍生出多个工作线程。当这些子线程完成他们的工作时,我想要实现的是,当父线程被中断时,我希望所有子线程也停止(即它们也被中断)。我知道实现这一点的一种方法是使用全局变量并让子线程在他们自己的代码中检查这个值。但是,我想知道这是否是正确的方法。任何意见/建议将不胜感激。

我基本上拥有的是一个带有 JButton 的简单 UI(最初的文本设置为“开始”)。单击该按钮时,文本变为“停止”并启动父 SwingWorker 线程。该线程被发送一个目录位置作为参数。该线程的作用是为它在该文件夹中找到的每个文件生成一个线索,以执行特定操作。但是,我想要实现的是,一旦单击 JButton,父线程应该停止扫描文件夹,子线程应该停止扫描文件。

只是想知道在此操作的父线程和子线程之间建议的消息传递方法是什么。全局变量?任何意见/建议都会对我很有帮助。谢谢!

4

1 回答 1

1

一种方法是cancel()在父工作者中覆盖并让它cancel()在最终调用之前在每个子工作者上调用super.cancel()

还要考虑一个JTable可以单独取消的执行子工作者。

于 2012-06-23T05:09:59.600 回答