java - Background job running without affecting the rest of the gui -
i'm asking assistance concerning general approach.
i have written java code check mailbox unread mails on buttonclick.
now want code permanently run in background , check mailbox every 2 minutes.
bad idea:
while(true) { checkmails(); thread.sleep(120000); }
the rest of graphical interface freezes, there has happen magic threads, suppose.
how realized?
either use javax.swing.timer
, or swingworker
, although latter bit overkill in scenario.
if task not modify swing components, why not spawn separate thread, such
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();
it's important note you'll want use boolean
ensure thread created once, since there's potential new thread spawn each button click, not want.
Comments
Post a Comment