写了一个程序,有个死循环,但是不知道这个怎么去解决啊,本人学了MFC 没多久,不知道这个多线程怎么弄,自己模仿别人写了一个在头文件中定义了一个
static UINT Fun1Proc(LPVOID pParam)
{
return 1 ;
}这样一个函数
在 CPP构造函数中构造了 pThread1=AfxBeginThread((AFX_THREADPROC)Fun1Proc,NULL);,但是我想单击开始键时这个死循环运行了,单击结束键时候,它又可以停止,这个应该怎么写呢???
就是运行了创建了一个线程之后,他运行我的那个死循环,循环的变量时类中的局部变量,
我就想让那个局部变量在子线程中运行,当我通过点击某个按钮时候,通过主线程,发送信息让那个子线程结束
你是想在线程函数中访问类的成员是吧, 那需要把类的指针通过参数传给线程函数, 就是AfxBeginThread第二个参数, 然后通过指针访问类成员。
追问还是不大明白,pThread1=AfxBeginThread((AFX_THREADPROC)Fun1Proc,this);你说的是这样写吧,但是当我不知道怎么在Fun1Proc 中去获得那个局部变量,你可以详细的给我说说吗》??
追答UINT Fun1Proc(LPVOID pParam)
{
CMyClass *pObj = (CMyClass *)pParam;// 得到实例的指针,也就是AfxBeginThread传入的第二个参数。
while(!pObj->m_bStop)
{
// .......
}
return 1 ;
}