MFC之多线程
来源:互联网 发布:逆战磁暴矩阵怎么用 编辑:程序博客网 时间:2024/04/30 09:28
最近使用MFC对项目进行可视化,开始学习MFC中的多线程,可能有理解错误的地方,以后会继续补充。
线程的声明:
CWinThread pThread;
类外回调函数,通过this传递类中的变量:
pThread = AfxBeginThread(ThreadVideoProc, this);
函数的的实现:
UINT ThreadVideoProc(PVOID pParm){ //通过pdlg指针控制类中的所有变量 MFCThreadTestDlg * pdlg = (CMFC_Faster_RcnnDlg*)pParm; flag_xiancheng = false; while (!flag_xiancheng) { //TODO...省略 return 0; }}
检验线程是否结束成功:
HANDLE hThread;hThread = pThread->m_hThread;DWORD dwEvent = WaitForSingleObject(hThread, INFINITE);//无限等待//DWORD dwEvent = WaitForSingleObject(hThread, 5000);//等待5sswitch (dwEvent){case WAIT_OBJECT_0: AfxMessageBox(TEXT("线程关闭成功")); break;case WAIT_FAILED: // Bad call to function (invalid handle?) AfxMessageBox(TEXT("WAIT_FAILED")); break;case WAIT_TIMEOUT: // None of the objects became signaled within 5000 milliseconds. AfxMessageBox(TEXT("超时!!!")); break;}
通过全局变量flag_xiancheng来控制线程的结束,实验过程中发现,全局变量不能稳定的控制线程的结束,经常结束线程失败,解决方法:
volatile bool flag_xiancheng;
0 0
- MFC之多线程创建
- MFC之多线程学习
- MFC之多线程
- MFC之多线程以及线程同步
- android线程之多线程
- GroboUtils之多线程测试
- Java学习之多线程
- java基础教程之多线程
- ecl之多线程
- Qt之多线程(一)
- Qt之多线程(二)
- 黑马程序员之多线程
- iOS 之多线程 NSThread
- delphi之多线程编程
- java之多线程
- Java学习之多线程
- iOS 之多线程
- 面试题之多线程
- Java Web(三) 会话机制,Cookie和Session详解
- [DP]数字金字塔
- 深入理解Java:自定义注解入门(Annotation)
- 静态路由算法
- linux文件描述符与打开文件的关系
- MFC之多线程
- 剑指offer经典编程(十七)
- 基于Qt_Test的单体测试方法(二)
- python学习记录1
- 使用Spring AOP切面解决数据库读写分离
- python函数的5种参数
- 网站整体变灰色的css代码
- Hadoop家族学习路线图
- <2>python学习笔记——分支和循环