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.Timer 或
SwingWorker ,虽然后者在这种情况下有点矫枉过正.
如果此任务不修改任何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(); 重要的是要注意你可能想要使用布尔值来确保线程只创建一次,因为每次点击按钮都会产生一个新线程,这可能不是你想要的. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |