QQ登录

只需一步,快速开始

上位机MFC如何创建Worker线程

[ 复制链接 ]
程序刚创建时,默认会创建一个主线程,也叫界面线程。
在处理复杂计算时,界面 线程会卡死。
里就可以创建工作线程避免这种情况。
如何创建Worker线程?
可以通过函数AfxBeginThread来实现。
例如例程:
void CDemoDlg::OnBeginThread()
{
        m_ThreadParam.hWnd = m_hWnd;
        //启动线程,初始为挂起状态
        AfxBeginThread(ThreadProc, &m_ThreadParam);
}

函数第一个参数传递的是线程函数ThreadProc。
  1. UINT ThreadProc(LPVOID pParam)
  2. {
  3.         //线程参数
  4.         THREAD_PARAM* pThreadParam = (THREAD_PARAM*)pParam;
  5.         for (int n = 0; n < 10; n++)
  6.         {
  7.                 Sleep(100);
  8.                 pThreadParam->nData++;
  9.                 //向主线程窗口发送消息
  10.                 ::PostMessage(pThreadParam->hWnd, WM_THREADMSG, 0, 0);
  11.         }
  12.         return 0;
  13. }
复制代码
THREAD_PARAM为自定义结构体
typedef struct THREAD_PARAM
{
        HWND hWnd;
        int nData;
}_THREAD_PARAM;
WM_THREADMSG为自定义消息
#define WM_THREADMSG WM_USER+1
此消息关联有一消息处理函数
        ON_MESSAGE(WM_THREADMSG, OnMsgFunc)
  1. LRESULT CDemoDlg::OnMsgFunc()
  2. {
  3.         SetDlgItemInt(IDC_DATA, m_ThreadParam.nData);

  4.         return 1;
  5. }
复制代码
我们可以下载下面的例程学习,界面如下。
点过按钮后,会启动一线程,线程内执行数值的叠加并显示在编辑框中。

上位机MFC如何创建Worker线程

上位机MFC如何创建Worker线程

请点击此处下载

请先注册会员后在进行下载

已注册会员,请先登录后下载

文件名称:上位机MFC如何创建Worker线程.rar 
文件大小:148.75 KB  售价:1金币
下载权限: 不限 以上或 VIP会员   [购买捐助会员]   [充值积分]   有问题联系我


  

上位机VC MFC程序开发精典实例大全源码与视频讲解配套下载408例

  

经历1年的编程与录制点击进入查看


  

如果您认可,可联系功能定制!

  

如果您着急,充值会员可直接联系发您资料!

  

QQ联系我

微信扫扫联系我

  



回复

使用道具 举报

快速回复 返回列表 客服中心 搜索