#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.youkuaiyun.com/detail/lingxiu0613/5991319