關於在C++類裡面建立執行緒
阿新 • • 發佈:2018-12-26
將執行緒函式宣告為靜態函式或者友元函式,但是靜態函式只能訪問靜態成員變數,所以利用引數將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指標