繁体   English   中英

关闭java处理线程

[英]Close java processing thread

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

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

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

我想你会做类似的事情:

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

您可以将其更改为:

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

现在,当您中断正在运行的线程时,您的任务将退出。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM