2013-06-12 117 views
0

在GUI应用程序中,当我必须进行大量数据操作(访问数据库)时,我创建了一个线程来打开一个加载对话框,并在处理结束时关闭此对话框。 但是,如果“加载”对话框关闭,我希望此处理被中断。今天,即使加载对话框关闭,它也会打开下一个视图。关闭java处理线程

我该怎么做? while(run){}不适用,因为它只运行一次,然后线程退出。另外中断不起作用,因为我没有任何阻塞方法。

+1

在事件中断它..当关闭对话框 – nachokk

+0

我已经这样做,但它失去了线程验证作为assylias评论。 – Deadlock

回答

3

另外中断不起作用,因为我没有任何阻塞方法。

我想你做这样的事情:

while(resultSet.hasNext()) { 
    //do something 
} 

您可以更改到:

while(resultSet.hasNext()) { 
    if (Thread.currentThread.isInterrupted()) break; 
    //do something 
} 

你的任务将立即退出,当你中断正在运行的线程。

+0

+1所以当加载对话框关闭时,它应该中断后台线程。 – Gray

+0

好主意,我会试试看。谢谢 – Deadlock

0

在您的Dialog关闭事件中使用myThread.interrupt()将导致所有等待的东西(睡眠,等待,阻止ios)停止。如果可能,请在代码中加上一些检查if (Thread.currentThread.isInterrupted())