多开 MFC线程
来源:互联网 发布:公安局网络诈骗案 编辑:程序博客网 时间:2024/06/05 14:54
(1).开MFC多个线程
在视频采集的过程中,如果不使用媒体计数器,会造成主线程只用于处理采集处理,主界面失去响应;
多开几个线程达到此效果.
一: 头件:AviTestDlg.h
//建立参数结构体typedef struct //传入线程参数结构体wishchin { IplImage* TheImage; //与CAviTestDlg 同参数? wishchin CAviTestDlg* dlg; //与主对话框成为友元 wishchin }lparameter,lparameter2 , *lpParam; //生成参数结构体 //类内设置友元,声明全局线程为友元class CAviTestDlg : public CDialog { public: friend UINT CPicThreadInfo(lpParam lp);//线程设置为友元,为使线程访问主对话框函数及变量 friend UINT CPicThreadInfo2(lpParam lpFuc); }
二:源码件 AviTestDlg.cpp
//添加全局线程 UINT CPicThreadInfo(lpParam lp); //在按下控件后,创建线程 void CAviTestDlg::OnBnClickedTraceStart(){ //测试代码,按下开始追踪,创建新线程 wishchin UpdateData(TRUE); /////////////////////////////////////////// //初始化参数。。。 lpParam lp=new lparameter; lp->TheImage =TheImage; lp->dlg =this; StartCapture(lp);//调用开始捕捉函数}//开始捕捉函数void CAviTestDlg::StartCapture(lpParam lp){ vector<CWinThread*> handle; ////////////////////////// lpParam parameter=new lparameter; ///////////////////////// 初始化参数列表 在线程函数内部初始化 可以?wishchin parameter->TheImage =lp->TheImage ; parameter->dlg =lp->dlg; /////////////////////////////////////////////////////////////////// CWinThread *pMyThread=AfxBeginThread(AFX_THREADPROC(CPicThreadInfo),parameter); ////创建线程函数CPicThreadInfo wishchin pMyThread->m_bAutoDelete=FALSE; pMyThread->ResumeThread(); handle.push_back(pMyThread); //用向量来容纳线程, 真正地开始创建线程 }//线程函数UINT CPicThreadInfo(lpParam lp) { IplImage* TheImage =lp->TheImage ; CAviTestDlg* dlg =lp->dlg; ///////////////////////////////////////////////////////////////// //打开视频件 CvCapture* pCapture=cvCaptureFromFile("C:\\test.avi"); //****测试代码,为少点击一个按钮。。wishchin if( !(pCapture=cvCaptureFromFile(FilePath))) //argv[1] filename { fprintf(stderr, "Can not open video file %s\n", "E:\\test.avi"); return -2; } }过程是这样的:
初始化参数——>初始化线程——>线程函数.
后记:使用AFX函数还是不太好的,涉及到内存问题;最后改用了BOOST函数对象,利用boost线程来实现多线程........
0 0
- 多开 MFC线程
- 多开 MFC线程
- MFC--线程
- MFC线程
- MFC线程
- MFC 线程
- MFC 线程
- [MFC]MFC线程
- MFC的work线程
- MFC线程安全问题
- MFC 线程局部存储
- MFC线程处理
- MFC线程安全问题
- MFC线程处理概述
- MFC 创建新线程
- MFC 下线程
- 【转】 MFC线程编程
- MFC创建UI线程
- 在MFC中使用Cstring
- MFC 添加文件路径 遍历文件
- 使用CImage类 显示图片
- Python的包导入机制
- 何凯明 Single Image Haze Removal Using Dark Channel Prior
- 多开 MFC线程
- 在Xcode项目里使用自定义字体的方法
- 人脸检测的harr探测函数
- 图像的连通域检测的递归算法
- Linux Target Image Builder(LTIB)环境配置(待续)
- 存储器管理
- 学生档案管理的源码
- 学历对一个程序员来说真的那么重要吗? googleHr 表示 更看重解决问题能力
- 将cef3嵌入到mfc对话框中,当程序退出时报错,怎么解决?