Click here to Skip to main content
11,417,972 members (42,513 online)
Rate this: bad
good
Please Sign up or sign in to vote.
See more: Java Swing Threading
Is there a way to immediately stop a thread depending on a boolean variable. In my application, the ReceiveMessage runs in a while loop while(isRunning), but the boolean variable is modified by the windowClosing event. I want the thread to stop immediately when the window is closed..
public class ChatWindow extends WindowAdapter implements ActionListener {
..............
..............
    public void windowClosing(WindowEvent w){
		try{
			
			dos.flush();
                        frame.dispose();
                        isRunning =false;
			
                        //t1.stop();
			}catch(Exception oe){}
		}
}
 
class ReceiveMessage implements Runnable
{
..................
..................
    public void run()
    {
        
        while(ChatWindow.isRunning)
        {  try
            {
                while(true)
                {
                String str = dislocal.readUTF();
                chatmodel.addElement(chatwith+":> "+str);
                }
            }
            catch(Exception e)
            {
                System.out.println("Error receiving message!");
            }
        }
    }
 
}
 
Posted 19-Oct-11 4:54am

1 solution

Rate this: bad
good
Please Sign up or sign in to vote.

Solution 1

You can interrupt a thread with the interrupt() method.
  Permalink  

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

  Print Answers RSS
0 Sascha Lefévre 340
1 Abhinav S 339
2 OriginalGriff 315
3 Sergey Alexandrovich Kryukov 245
4 deepankarbhatnagar 121
0 Sergey Alexandrovich Kryukov 9,345
1 OriginalGriff 7,712
2 Maciej Los 3,758
3 Abhinav S 3,601
4 Sascha Lefévre 3,198


Advertise | Privacy | Mobile
Web01 | 2.8.150427.4 | Last Updated 19 Oct 2011
Copyright © CodeProject, 1999-2015
All Rights Reserved. Terms of Service
Layout: fixed | fluid

CodeProject, 503-250 Ferrand Drive Toronto Ontario, M3C 3G8 Canada +1 416-849-8900 x 100