您的位置:首页 > 其它

类成员函数创建线程

2013-08-22 10:17 357 查看
#include <iostream>
using namespace std;
#include <afx.h>
#include <Windows.h>
#include <afxwin.h>

CRITICAL_SECTION  Section;
int i = 0;
class Sample
{
public:
int Func(void);
static UINT ThreadFunc1(LPVOID pParam);
static UINT ThreadFunc2(LPVOID pParam);
};

int Sample::Func()
{
AfxBeginThread(ThreadFunc1, this);
AfxBeginThread(ThreadFunc2, this);
cout<<"fun1 have start"<<endl;

return 0;
}
UINT Sample::ThreadFunc1(LPVOID pParam)
{
Sample * pthis = (Sample*) pParam;
/*pthis->Func();*/
/*while (1)
{
Sleep(1000);
cout<<i<<endl;
i++;
}*/
while (1)
{
EnterCriticalSection(&Section);
Sleep(1000);
cout<<"ThreadFunc1"<<endl;
LeaveCriticalSection(&Section);
}
cout<<"threas start"<<endl;
return 0;
}

UINT Sample::ThreadFunc2(LPVOID pParam)
{
Sample * pthis = (Sample*) pParam;
/*pthis->Func();*/
while (1)
{
EnterCriticalSection(&Section);
Sleep(1000);
cout<<"ThreadFunc2"<<endl;
LeaveCriticalSection(&Section);
}
cout<<"threas start"<<endl;
return 0;
}

int main()
{
cout<<"thread in class"<<endl;
InitializeCriticalSection(&Section);

Sample sampletest;
sampletest.Func();
Sleep( 5000000);
return 0;
}


输出:



此文件工程在:http://download.csdn.net/detail/lingxiu0613/5991319
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: