AfxBeginThread需要需要CloseHandle?解决办法
来源:互联网 发布:python cbind 编辑:程序博客网 时间:2024/05/16 04:44
选自:http://www.myexception.cn/vc-mfc/300534.html
1、AfxBeginThread需要需要CloseHandle???
一般的创建线程,是会CloseHandle的
但是AfxBeginThread 需要吗???
问题2:
当线程暂停后,如果此时关闭 主界面。。。。
如何关闭子线程呢????
问题3:对于AfxBeginthread的线程, 主线程可不可以 用ExitInstance的方式来退出子线程???
------解决方案--------------------------------------------------------
1、不需要。这个是MFC封装了的。
2、当一个线程被挂起后,用户关闭程序,正确的做法当然是先退出挂起的线程,
方法先恢复线程,然后跟线程通信(可能是全局变量、事件,或者消息,前两个
一般用于跟工作线程通信,后者用于跟UI线程或者带有自写消息循环的线程通信},
让线程自己退出,主线程等待线程句柄(比如等1秒钟),如果等不到,可调用
TerminateThread 强行终止线程,当然,强行终止是可能造成内在泄漏的,
所以我一般宁可多等一会儿,比如两秒。
3、兔子党组织部长 给的代码,我觉得
pThread-> m_bAutoDelete = FALSE; //是为了能够等到UI线程句柄,不然线程返回后句柄就无效了。好像对于工作线程没必要。
pThread-> PostThreadMessage(...); //这里一般是传个WM_QUIT消息
WaitForSingleObject(pThread-> m_hThread); //这就是等线程句柄,应该再加个时间,比如:
WaitForSingleObject(pThread-> m_hThread, 2000);
CloseHandle(pThread-> m_hThread); //这一句是否有必要?
delete pThread; //这是为了让线程类析构
pThread = NULL; //如果马上要退出程序了,这一句也可以不要。
其他参考:http://bbs.csdn.net/topics/70107258
- AfxBeginThread需要需要CloseHandle?解决办法
- 【技巧点滴】线程创建后需要立即调用CloseHandle
- 需要管理员权限解决办法
- 需要
- 需要
- ...需要
- 需要
- 需要
- “UnobtrusiveValidationMode 需要“jquery”ScriptResourceMapping”解决办法
- XShell过期需要采购解决办法
- CreateEvent,OpenEvent成功后 是否需要::CloseHandle(xxx); 避免句柄泄漏
- 访问 IIS 虚拟目录需要权限的解决办法
- 访问IIS虚拟目录需要权限的解决办法
- WORD遇到问题需要关闭解决办法
- C# 项目需要 temporaryKey.pfx 解决办法
- Word遇到问题需要关闭的解决办法
- make menuconfig 需要 ncurses 安装 解决办法
- 关于AlarmManager运用需要注意事项和解决办法
- 【iOS开发】---- ALAsset,ALAssetsLibrary,ALAssetsgroup常见属性及用法
- 以前的博客
- 设计子线程的管理器
- jdk各版本的区别
- IT职业规划与行业分析
- AfxBeginThread需要需要CloseHandle?解决办法
- 根据字体多少使UILabel自动调节尺寸
- 电池 充电IC(PM2301)驱动分析篇
- 堆排序
- C++ 使用delete删除指针
- c++拷贝构造函数的禁用 与 友元函数
- NSDate转NSString遇到异常字符时字符串被截断JSON解析失败
- android.database.CursorIndexOutOfBoundsException: Index <m> requested, with a size of <n>
- 往死里写——从站mailbox实现