基本的MFC多线程

简介: 多线程程序我本来是能够来写的。但是由于在图像处理的过程中,对于这方面知识使用的比较少,造成重复忘记的情况。这里再次进行整理学习,特别注重和“图像处理”理清关系,为下一步使用奠定基础。 这里实现的是工作者线程 在.h文件中定义 struct threadInfo {     UINT nMilliSecond;     CProgressCtrl* pctrlProgress; }; UINT ThreadFunc(LPVOID lpParam);  这些是需要在dlg文件外部的 CWinThread* pThread;  在内部的。

      多线程程序我本来是能够来写的。但是由于在图像处理的过程中,对于这方面知识使用的比较少,造成重复忘记的情况。这里再次进行整理学习,特别注重和“图像处理”理清关系,为下一步使用奠定基础。

这里实现的是工作者线程
在.h文件中定义
struct threadInfo
{
    UINT nMilliSecond;
    CProgressCtrlpctrlProgress;
};
UINT ThreadFunc(LPVOID lpParam); 
这些是需要在dlg文件外部的
CWinThreadpThread
在内部的。
在.cpp文件中,实现ThreadFunc,并且将参数进行转换
threadInfo Info
UINT ThreadFunc(LPVOID lpParam)
{
    threadInfopInfo=(threadInfo*)lpParam;
    for(int i=0;i<100;i++)
    {
        int nTemp=pInfo->nMilliSecond;
 
        pInfo->pctrlProgress->SetPos(i);
 
        Sleep(nTemp);
    }
    return 0;
}
最后在事件中进行驱动
void CMFCApplication1Dlg::OnBnClickedButton1()
{
    // TODO: 在此添加控件通知处理程序代码
    UpdateData(TRUE);
    Info.nMilliSecond=m_nMilliSecond;
    Info.pctrlProgress=&m_ctrlProgress;
 
    pThread=AfxBeginThread(ThreadFunc,&Info);
 
}
可以看到,线程的创建已经最后简化到了(函数名,参数)的形式,应该说是非常不错的。
但是反思一下,这种机制如何在图像处理中运用了?





目前方向:图像拼接融合、图像识别 联系方式:jsxyhelu@foxmail.com
目录
相关文章
|
2月前
|
安全
qt 线程编程
qt 线程编程
|
8月前
|
Java
QT多线程
qt多线程
79 0
|
8月前
|
测试技术 调度 C++
QT5多线程
通常情况下,应用程序都是在一个线程中执行操作。但是,当调用一个耗时操 作(例如,大批量I/O或大量矩阵变换等CPU密集操作)时,用户界面常常会冻结。而使用多线程可解决这一问题。
67 0
|
程序员 API 数据库
|
安全 API Windows