|
1, 在头文件里面定义如下变量:
BOOL m_bEnd;
BOOL m_bCancel;
2, 按钮1的响应函数
UINT ReceiveProc(LPVOID pParam)
{
CMyDialog *pDlg = (CMyDialog*)pParam;
pDlg->receive();
return 0;
}
void CMyDialog::OnClickButton1()
{
m_bCancel = FALSE;
//创建线程
AfxBeginThread( ReceiveProc, (LPVOID)this, THREAD_PRIORITY_ABOVE_NORMAL );
}
void CMyDialog::receive()
{
m_bEnd = FALSE;
//假设你这里是一个循环
while( 1 )
{
......
if( m_bCancel )break; //中止标志,按钮2被按下了
}
m_bEnd = TRUE; //告诉按钮2的响应函数,本函数结束了
}
3, 按钮2的响应函数
void CMyDialog::OnClickButton2()
{
m_bCancel = TRUE; //设置中止标志
while( !m_bEnd )Sleep( 10 ); //等待receive()结束
read(); //执行你的read()函数
}
|
|