QQ登录

只需一步,快速开始

上位机MFC如何获得线程的退出码

[ 复制链接 ]
线程函数退出时,会返回一个代码。
我们可以在函数内返回 不同的代码来判断线程执行情况。
如何获取线程返回代码?
可以直接使用函数GetExitCodeThread。
我们可以自己创建工程来测试,
可以事先从CWinThread派生两个类,
class CMyThread1 : public CWinThread这种形式。
在类初始化函数中起始退出线程,因为我们目的仅为测试。
  1. BOOL CMyThread1::InitInstance()
  2. {
  3.         //退出线程,退出码1000。
  4.         AfxEndThread(1000);
  5.         return TRUE;
  6. }
复制代码


然后就是这两个类的使用,我们定义变量,初始化。
        CMyThread1* m_pThread1;
        HANDLE m_hThread2;


然后就可以调用两个按钮来查看实现效果
  1. void CGkbc8Dlg::OnButton1()
  2. {
  3.         if (m_pThread1 != NULL)
  4.         {
  5.                 delete m_pThread1;
  6.                 m_pThread1 = NULL;
  7.         }

  8.         //启动线程 初始为挂起状态
  9.         m_pThread1 = (CMyThread1*)AfxBeginThread
  10.                 (RUNTIME_CLASS(CMyThread1),
  11.                 THREAD_PRIORITY_NORMAL,
  12.                 0,
  13.                 CREATE_SUSPENDED);

  14.         //线程结束时不自动撤销
  15.         m_pThread1->m_bAutoDelete = FALSE;

  16.         //恢复线程运行
  17.         m_pThread1->ResumeThread();       
  18. }
复制代码
  1. void CGkbc8Dlg::OnButton4()
  2. {
  3.         if (m_pThread1 == NULL)
  4.         {
  5.                 return;
  6.         }

  7.         DWORD dwExitCode = 0;

  8.         if (::GetExitCodeThread(m_pThread1->m_hThread, &dwExitCode))
  9.         {   
  10.                 if (dwExitCode == STILL_ACTIVE)
  11.                 {
  12.                         AfxMessageBox(_T("线程正在运行\n"));
  13.                 }
  14.                 else
  15.                 {
  16.                         CString strText = _T("");
  17.                         strText.Format("线程退出,退出码:%d\n", dwExitCode);
  18.                         AfxMessageBox(strText);
  19.                 }
  20.         }
  21. }
复制代码
同样类2的使用类似。
这里准备一个例程给大家下载学习。
请点击此处下载

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

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

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


  

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

  

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


  

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

  

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

  

QQ联系我

微信扫扫联系我

  


回复

使用道具 举报

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