在对话框程序中,去建一个全局线程方法解决思路

在对话框程序中,去建一个全局线程方法
    我想在一个对话框界面内,建立一个可以由几个类都能调用的线程。由界面上的按钮启动和停止这个全局线程。请大侠们帮忙。
     通过向导建立的MFC对话框类,main 在CServerUIAPP类中,对话框在CServerUIDlg类中,我建了一个实现功能的类CFunctionUser。现在想建一个UserThread线程,可能受控制。你们有些看不懂,我在线解释。
------解决方案--------------------
那就让其它的几个类都把对话框做为主窗口,其它的几个类调用主窗口里的线线程来运行停止,也就是在主窗口(这里是对话框)建立线程,其它类通过取主窗口的句柄来操作线程
------解决方案--------------------
线程函数可以放在一类中,比如CFunctionUser类,这样主对话框就可以调用这个类里的线程函数来建立线程
------解决方案--------------------
你建立的线程放哪里都没关系的。用几个全局互斥变量(CEvent,CMutex)来控制就可以了
------解决方案--------------------
利用EVENT同步就好了
------解决方案--------------------
类全局就行,在别的类里建立这个类的变量,然后:类->m_FunThread->ResumeThread();
------解决方案--------------------

//开始
CTest::BegThread(){
m_hThread = CreateThread(NULL,0,FuncThread,this,0,NULL);
m_hDoSomething = CreateEvent(NULL,FALSE,FALSE,NULL);
m_hExit = CreateEvent(NULL,FALSE,FALSE,NULL);
}
//线程的全局调用方式,或则说静态调用方式
static DWORD CALLBACK FuncThread(LPVOID lparam);
void _FunThread();
CTest::FuncThread(LPVOID lparam)
{
CTest *pThis = (CTest*)lparam;
pThis->_FunThread();
return 0;
}
CTest::FuncThread(LPVOID lparam)
{
HANDLE hEvent[2] = {hExit,hDoSomething};
while(TRUE)
{
DWORD dwRet = 0;
dwRet = WaitForMultipleObjects(2,hEvent,FALSE,INFINITE);
if (dwRet == WAIT_OBJECT_0)
{
return;//收到退出事件
}
//由于死等事件,能到这里,说明等到了dosomething事件
//做你的事情吧--在这里可以用函数指针,函数指针用法百度去。
//做完了事情会while到WaitForMultipleObjects继续等你的dosomething事件
//或则退出事件
}
//这就达到了线程的简单控制。
//结束线程
}
CTest::StopThread()
{
SetEvent(m_hExit);
if (WaitForSingleObject(m_hExit,300) == WAIT_TIMEOUT)
{
TerminateThread(hThread,0);
}
CloseHandle(hThread);
}


//要在工作就调用这个事件
SetEvent(m_hDoSomething);

//这写都是在类方法里的,没有任何全局的东西