Java – runs background jobs without affecting the rest of the GUI
•
Java
I'm looking for help with general methods
I have written some java code to view unread messages in my mailbox on buttonclick
Now, I want this code to run permanently in the background and check my mailbox every 2 minutes
lousy idea:
while(true)
{
checkMails();
Thread.sleep(120000);
}
The rest of the graphical interface will obviously freeze, so I think I have to play some magic in the thread
How can it be achieved?
Solution
Using javax swing. Timer or @ L_ 404_ 2@, although the latter is a bit overcorrected in this case
If this task does not modify any swing components, why not generate a separate thread, so
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 is important to note that you may want to use Boolean values to ensure that the thread is created only once, because each click of the button will produce a new thread, which may not be what you want
The content of this article comes from the network collection of netizens. It is used as a learning reference. The copyright belongs to the original author.
THE END
二维码
