看流星社区

 找回密码
 注册账号
查看: 1854|回复: 0

[备忘]MFC各种控件使用,线程

[复制链接]

该用户从未签到

发表于 2017-6-1 12:52:24 | 显示全部楼层 |阅读模式
  1. BOOL g_bWillExit = FALSE;
  2. CXxxDlg::OnInitDialog()
  3. {
  4.         CWinThread   *m_pWinThread;
  5.         HANDLE                 m_hEvent;
  6.         g_bWillExit = FALSE;
  7.         m_pWinThread = AfxBeginThread((AFX_THREADPROC)threadGetMsg, (LPVOID)this);
  8.         m_pWinThread->SuspendThread();
  9.         m_pWinThread->m_bAutoDelete = FALSE;
  10.         m_pWinThread->ResumeThread();
  11.         m_hEvent = CreateEvent(NULL, TRUE, FALSE, NULL);
  12.         if (m_hEvent == NULL)
  13.         {
  14.                 return FALSE;
  15.         }
  16. }
  17. DWORD WINAPI threadGetMsg(PVOID param)
  18. {
  19.         CINeedDlg *pMainDlg = (CINeedDlg *)param;
  20.         DWORD dwTimeOut = 10*1000;
  21.         while(g_bWillExit == FALSE)
  22.         {
  23.                 WaitForSingleObject(pMainDlg->m_hEvent, dwTimeOut);
  24.                 ResetEvent(pMainDlg->m_hEvent);
  25.                 if (g_bWillExit == FALSE &&
  26.                         pMainDlg->m_bPauseMsg == FALSE)
  27.                 {
  28.                         PostMessage(pMainDlg->m_hWnd, WM_SHOW_MSGDLG, 0, 0);
  29.                 }
  30.         }
  31.         return 0;
  32. }
  33. OnClose()
  34. {
  35.         g_bWillExit = TRUE;
  36.         SetEvent(m_hEvent);
  37.         if (m_pWinThread)
  38.         {
  39.                 WaitForSingleObject(m_pWinThread->m_hThread, INFINITE);
  40.                 delete m_pWinThread;
  41.                 m_pWinThread = NULL;
  42.         }
  43. }
复制代码
点击按钮快速添加回复内容: 支持 高兴 激动 给力 加油 苦寻 生气 回帖 路过 感恩
您需要登录后才可以回帖 登录 | 注册账号

本版积分规则

小黑屋|手机版|Archiver|看流星社区 |网站地图

GMT+8, 2024-3-19 15:57

Powered by Kanliuxing X3.4

© 2010-2019 kanliuxing.com

快速回复 返回顶部 返回列表