15,471
社区成员
发帖
与我相关
我的任务
分享
class A
{
public:
BOOL Start();
static DWORD WINAPI RecvVideoProc(LPVOID lpParameter);
void DoWork() {}
private:
HANDLE m_hThread;
}
BOOL A::Start()
{
m_hThread=CreateThread(NULL,0,SendVideoProc,(LPVOID)pRecvParamVS,0,NULL);
return m_hThread ? FASLE : TRUE;
}
DWORD WINAPI A::RecvVideoProc(LPVOID lpParameter)
{
A *a = (A*)lpParameter;
p->DoWork();
return 0;
}
BOOL A::Start()
{
m_hThread=CreateThread(NULL,0,SendVideoProc,(LPVOID)this,0,NULL);
return m_hThread ? FASLE : TRUE;
}
//先自己创建一个HANDLE,用于安全退出的
hExit = CreateEvent(NULL,TRUE,FALSE,NULL);
....
//然后在线程函数中:
HANDLE h1[2]={hExit,hYourHandle };
DWORD dwResult1;
for(;;)
{
dwResult1=::WaitForMultipleObjects (2,h1,FALSE,INFINITE);
if(dwResult1==WAIT_OBJECT_0)
{
//Do Your Work...
return 0;
}
else if(dwResult1==WAIT_OBJECT_0+1)
{...}
...
}
...
//然后在Destroy中:
SetEvent(hExit);