1. 程式人生 > >關於在C++類裡面建立執行緒

關於在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指標