我在非模式对话框中创建了一个线程,该线程经常处于堵塞状态(如循环调用socket的recv)。现在我想在关闭该对话框时先把这个线程也终止了,我试着直接把对话框关掉,但用IceSword看那个线程依然还存活着。这里向高手请教非模式对话框和它所创建的线程之间的关系,该线程是否会随着创建它的非模式对话框的销毁而终止,以及如何恰当地在关闭对话框时终止这个线程(特别是对socket-recv堵塞状态下的线程)。
1、不要说用非堵塞socket了,因为大部分工作已经完成,再改socket的模式太麻烦;
2、不要说用closesocket解除堵塞,因为这个socket将来还要用;
3、不要说让peer-socket发个信号过来,这边recv后判断然后退出,我现在用的就是这种方式。