Java 停止swingworker的后台工作

Java 停止swingworker的后台工作,java,multithreading,swingworker,Java,Multithreading,Swingworker,我有点小问题,希望你能帮助我 我有一个类似这样的背景: protected Void doInBackground() throws Exception { someTool.run(); } someTool属于第三方库,我不应该更改它,它的运行方法是一个长任务,需要运行一段时间 我想知道是否有可能从外部终止这项任务? 通常的Thread.Interrupt()机制在这里并不好,因为我没有任何可以检查标志和终止线程的循环,我试图找到答案,但没有成功,谢谢。这与SwingWorker无关

我有点小问题,希望你能帮助我

我有一个类似这样的背景:

protected Void doInBackground() throws Exception
{
   someTool.run();
}
someTool属于第三方库,我不应该更改它,它的运行方法是一个长任务,需要运行一段时间

我想知道是否有可能从外部终止这项任务?
通常的Thread.Interrupt()机制在这里并不好,因为我没有任何可以检查标志和终止线程的循环,我试图找到答案,但没有成功,谢谢。

这与SwingWorker无关,而是与特定的问题有关,“是否可以停止
someTool.run())
一旦启动它”。您最好的办法是询问支持此库的人员,如何在方法启动后安全、干净地停止该方法。

不,如果第三方代码不支持
Thread.interrupt()
,这是不可能的。如果这是一个长时间运行的调用,您可以将其卸载到其他JVM。但这意味着您需要一些通信方案才能得到答案。@Yakov:如果您计划
cancel()
工作程序,了解库如何响应中断是至关重要的;它可能有助于识别库。