WEB开发网
开发学院软件开发VC 多线程管理类 阅读

多线程管理类

 2010-09-04 20:48:19 来源:WEB开发网   
核心提示:这里要注意两个地方:1.CYGMulThread的模板是用被派生出来的类,这里的好处,多线程管理类(3),就是可以使CYGMulThread可以使用被派生出来的东西,至于还有什么好处,CMulThreadDlg有了这样的头定义后,就可以使用下面的行为了void CMulThreadDlg::ThreadFunc(){D

这里要注意两个地方:

1.CYGMulThread的模板是用被派生出来的类,这里的好处,就是可以使CYGMulThread可以使用被派生出来的东西,至于还有什么好处,有兴趣的朋友可以看一下ATL和WTL里的代码,里面大量使用这种结构。

2.这里用的私有继承,当然也可以用公用继承:),个人觉得这样私有继承,数据封装性好一点。

CMulThreadDlg有了这样的头定义后,就可以使用下面的行为了

void CMulThreadDlg::ThreadFunc()
{
  DWORD dwID=GetCurrentThreadId();
  while (1)
  {
//    g_cs1.Lock();
    TRACE("线程:%x  路过
",dwID);
//    g_cs1.Unlock();
    Sleep(200);
    if (IsBreakThread())
    {
//      g_cs1.Lock();
      TRACE("线程:%x要结束了!
",dwID);
//      g_cs1.Unlock();
      return ;
    }
    Sleep(10000);
  }
}
//创建线程
void CMulThreadDlg::OnBtnDebug()
{
  YGBeginFuncThread(ThreadFunc,10);//创建10个线程,其函数为ThreadFunc,这里ThreadFunc是CMulThreadDlg的成员函数
}
//结束线程
void CMulThreadDlg::OnBtnStop()
{
  EndAllThread("正要结束线程....");
}

上一页  1 2 3 4  下一页

Tags:线程 管理

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接