我想设计一个这样的类A,它能够主动的响应事件,比如某个时间发生时它的成员函数就自动执行,比如:A::ONEVENTHAPPEN(PARAM)
象这样的类是不是另外开了一个线程来监视这个事件的发生,但有事件发送时则执行这个响应事件的成员函数
假如我的想法是正确的话,这个线程函数是不是类似这个样子的
DWORD ThreadFun(LPVOID lpParam)
{
while(等待事件发生)//没发生时SLEEP
{
执行响应事件的函数
}
}
象这样的类是不是另外开了一个线程来监视这个事件的发生,但有事件发送时则执行这个响应事件的成员函数
假如我的想法是正确的话,这个线程函数是不是类似这个样子的
DWORD ThreadFun(LPVOID lpParam)
{
while(等待事件发生)//没发生时SLEEP
{
执行响应事件的函数
}
}
你可以试一下看看CWinThread是否可以SetTimer
行的话就可以相应WM_timer了
{
public:
virtual void ThreadRun(){};
void Start();
private:
satatic DWORD RealThread(CThread *pThis);
}void CThread::Start()
{
CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)ReadThread,this,0,NULL);
}DWORD CThread::RealThread(CThread *pThis)
{
pThis->ThreadRun();
return 0;
}
我想知道CSOCKET和MSCOMM组件
它们的OnReceive()和ONCOMM()函数是怎么触发的,是通过消息还是事件