关于在C++类里面建立线程


将线程函数声明为静态函数或者友元函数,但是静态函数只能访问静态成员变量,所以利用参数将this传进函数来,就可以通过该指针访问类成员变量和函数了。具体例子:

不多说了,直接上代码:

lll.h


#include<afxwin.h>
#include<iostream>
using namespace std;
int flag=1;
class realtask
{
public:
friend UINT task(LPVOID param);
BOOL starttask();
void display()
{
int b;
cout<<"请输入一个函数"<<endl;
cin>>b;
cout<<"display:"<<b<<endl;
}
void over()
{
flag=0;
}
};


 UINT task(LPVOID param)
 {
realtask *ptask=(realtask *)param;
while(flag)
{
cout<<"123"<<endl;
}
return 0;
 }
 BOOL realtask::starttask()
 {
AfxBeginThread(task,this);
return true;
 }




//主函数

#include "stdafx.h"


#include"lll.h"


int _tmain(int argc, _TCHAR* argv[])
{
realtask a;
a.starttask();
a.display();
a.over();


return 0;
}


主要是因为静态函数不会带类的参数,所以通过this指针


你可能感兴趣的:(关于在C++类里面建立线程)