创建线程函数:
m_pReadReportThread=AfxBeginThread(
ReadReportThread,//创建线程的地址,线程函数入口
lpParam, //线程参数,一般为this
THREAD_PRIORITY_NORMAL,//线程优先级
0, //线程堆栈大小
CREATE_SUSPENDED, //设置线程的标志位
NULL); //设置后线程处于挂起状态
CreateThread后立即CloseHandle,为什么线程还在运行?
在结束一个线程前,只有一点要注意,那就是m_bAutoDelete 的状态。(什么?不知道m_bAutoDelete ?!!快去查阅MSDN吧)。
m_bAutoDelete = FALSE; // 表示你自己管理 CWind 对象,包括它的清理
m_bAutoDelete = TRUE; // 默认值, 系统会自己清理 CWind 对象
m_bAutoDelete = TRUE; 系统自己清理CWind对象,当然还包括CloseHandle(),ExitInstance()等等一堆函数的调用。
m_bAutoDelete = FALSE; 那么就一定要记得自己在用完后调用delete删除创建线程的对象,这一点极为重要,因为不调用delete一定会有内存泄漏问题。
总之m_bAutoDelete 的值对结束工作是很重要的,这点一定要注意。