hehe ,
在你关闭前,给线程一个消息或者数值,让他检测,如果是要关闭就kill,
在主窗口的onClose中 检测线程是否结束了(可以检测一个直,如果没有
就return) 让你开的线程给主窗口发wm_close消息就可以了。

解决方案 »

  1.   

    1. 你可以在线程未完全退出时再关闭.你可以设定一变量用做检测,也可以用WaitForMultiObject()来等待直到所有的线程退出.
    2.万一要在其未退出时关闭窗口,就要在退出以前释放掉线程资源...TerminateThread(..)可以用来强行关掉某线程,但必须注意,这个函数不是线程安全的...并且线程资源也不会被释放掉...而且Windows也没提供比较好的方法可以安全的杀掉一个线程...所以最好的方法是在退出时能设法让线程知道,让他自己退出之后再关闭窗口...
    3.HANDLE h = CreateThread(...); 后调用CloseHandle(h);