加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 运行后台作业而不影响其余的gui

发布时间:2020-12-15 08:42:11 所属栏目:Java 来源:网络整理
导读:我正在寻求有关一般方法的帮助. 我已经编写了一些java代码,用于在buttonclick上查看我的邮箱中的未读邮件. 现在,我希望此代码永久在后台运行,并每隔2分钟检查一次我的邮箱. 馊主意: while(true){checkMails();Thread.sleep(120000);} 图形界面的其余部分显
我正在寻求有关一般方法的帮助.

我已经编写了一些java代码,用于在buttonclick上查看我的邮箱中的未读邮件.

现在,我希望此代码永久在后台运行,并每隔2分钟检查一次我的邮箱.

馊主意:

while(true)
{
checkMails();
Thread.sleep(120000);
}

图形界面的其余部分显然会冻结,因此我认为必须在线程中发挥一些魔力.

怎么能实现呢?

解决方法

使用 javax.swing.TimerSwingWorker,虽然后者在这种情况下有点矫枉过正.

如果此任务不修改任何Swing组件,那么为什么不生成单独的线程,因此

Thread t = new Thread(new Runnable(){
    @Override
    public void run(){
        while(!Thread.currentThread().isInterrupted()){
            //do stuff

            try{
                Thread.sleep(120000);
            }catch(InterruptedException e){
                Thread.currentThread().interrupt();
            }
        }
    }
});
t.start();

重要的是要注意你可能想要使用布尔值来确保线程只创建一次,因为每次点击按钮都会产生一个新线程,这可能不是你想要的.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读