线程的一个问题
来源:百度知道 编辑:UC知道 时间:2024/09/23 18:28:36
创建了一个类方法,因为要做成线程
定义为static DWORD WINAPI func1()
{
while(waitforsingleobject(hSignal,0))
{
}
}
如何定义这个hSignal?使得可以在外部方法发送事件跳出这个循环。
Event?
CEvent!
主要是因为线程方法是静态的,而外部方法是非静态的,静态方法无法调用普通成员函数。
全局变量似乎可以解决,但是一定要用全局变量吗?
定义为static DWORD WINAPI func1()
{
while(waitforsingleobject(hSignal,0))
{
}
}
如何定义这个hSignal?使得可以在外部方法发送事件跳出这个循环。
Event?
CEvent!
主要是因为线程方法是静态的,而外部方法是非静态的,静态方法无法调用普通成员函数。
全局变量似乎可以解决,但是一定要用全局变量吗?
#include <windows.h>
#include <stdio.h>
class CTest
{
protected:
HANDLE m_hEvent;
static DWORD WINAPI Thread(LPVOID pParam);
public:
CTest();
void Start(); //工作线程开始
void End(); //工作线程结束
};
CTest::CTest()
{
m_hEvent = NULL;
}
DWORD WINAPI CTest::Thread(LPVOID pParam)
{
CTest *p = (CTest *)pParam;
while (WaitForSingleObject(p->m_hEvent, 0) != WAIT_OBJECT_0)
{
Sleep(100);
&nbs