C++类中定义线程

转载 2013年08月27日 10:33:52


1. C++ 中如何定义线程函数

     有两种方法:a. 定义线程函数为全局函数    b. 定义线程函数为类的静态成员函数

2. C++中的线程函数如何访问类中的成员变量

    针对线程函数为类的静态成员进行说明。如果是静态数据成员,当然可以直接访问,但是如果要访问非静态数据成员,直接访问是做不到的。如果要想在线程函数中访问和操作类的非静态成员变量,可以把线程函数作为一个适配器,在适配器中调用类的非静态成员函数。例如:


class CMyClass
{
public:
    void TestFunc();
    static int ThreadFunc(LPVOID pParam);// Adapter
protected:
    int ThreadFuncKernal();// Kernal
}

void CMyClass::TestFunc()
   {
        AfxBeginThread(TreadFunc, this);
   }

   // Thread function Adapter
   int CMyClass::ThreadFunc(LPVOID pParam)
   {
       CMyClass *pObj = (CMyClass *)pParam;
       return pObj->ThreadFuncKernal();
   }

   // Thread function kernal
   int CMyClass::ThreadFuncKernal()
   {
       while(1)
       {
           // my thread
           // to control class non-static member
       }
       return 0;
   }

在C++类中定义线程函数的方法

最近开始看线程的东西,想把原来的程序优化一下,看到下面的这篇文章,感觉分析得还不错(主要是分析点比较到位,思路很清晰!),在此和大家分享一下。 http://rangercyh.blog.51cto...

在C++类中定义线程函数的方法

昨天用C++把我写的一个游戏功能进行了封装,其中涉及到一个小问题,就是我封装的C++类中必须定义2个线程函数,比如像下面这样:   1. class A   2. {   3. pu...
  • wjs1033
  • wjs1033
  • 2014年05月10日 15:33
  • 463

为什么在C++使用pthread_create()的时候,类成员函数做线程的处理函数必须要定义成static类型的?

转自:http://blog.sina.com.cn/s/blog_936739790101186v.html今天在进行多线程编程的时候遇到了一个编译问题:error: argument of typ...

黑马程序员——java 自定义线程类

------- android培训、java培训、期待与您交流! --------- /* 进程:是一个正在执行中的程序。        每一个进程执行都有一个执行顺序。该顺序是一个执行路径,或...

c++单例模式线程日志类

  • 2017年11月22日 16:04
  • 5KB
  • 下载

自定义线程消息循环

  • 2013年03月15日 16:52
  • 4KB
  • 下载

Web---演示Servlet的相关类、下载技术、线程问题、自定义404页面

Servlet的其他相关类: ServletConfig – 代表Servlet的初始化配置参数。 ServletContext – 代表整个Web项目。 ServletRequest – 代表...

Linux_线程定义

  • 2016年01月02日 09:39
  • 337KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C++类中定义线程
举报原因:
原因补充:

(最多只允许输入30个字)