JFrame关闭后里面的函数为什么还在执行
程序是socket通信的。接收socket传过来的函数写在对话界面的类里面。
1、关闭对话界面以后读数据的函数仍然在运行,socket连接也没断,关闭方式是setDefaultCloseOperation(DISPOSE_ON_CLOSE)。这跟函数写成while(true){……}有关系么。
2、鉴于上面这点,我打算把程序设计成如果关闭对话界面以后,对方发消息过来,我这边又会重新创建对话界面。我设了变量,用来标识对方发消息过来时我这边是否有界面。如果有界面,创建一个线程来创建对话界面。现在问题是对面发两句我只能显示一句,收是都收到了。我觉得原因是我原来的那个函数在读消息,后来创建的那个对话界面里的函数也在读。请问怎么实现把原来的那个函数停止。
[解决办法]
你先关闭的是对话界面,而没有关闭读取数据的函数....这样是没用的。你可以先切断连接,关闭函数,最后才销毁界面,如果你要接受类似于离线留言之类的信息的话,可以建议你用一个文件来保存所有的离线信息,即你关闭界面之后,数据处理函数接受的信息
[解决办法]