我有两个按钮,单击一个按钮触发一个消息响应,在这个消息响应中开了一个线程,该线程中有一个函数,在函数中有一个for循环,当运行时(此时程序一直在执行for循环里边的操作)我单击另外一个按钮,想终止这个线程的运行,如何操作?目前小弟的程序就只能写到这个地步了,大家看看如何改?谢谢各位大侠了……
void CTestDlg::OnBT1() //创建一个线程
{
// TODO: Add your control notification handler code here
THREADSTRUCT *_param = new THREADSTRUCT; //THREADSTRUCT 为一个结构体
_param->_this = this;
CWinThread* pThread;
pThread = AfxBeginThread (MyThread, _param);
}
UINT CTestDlg::MyThread(LPVOID param) //线程
{
THREADSTRUCT* ts = (THREADSTRUCT*)param;
ts->_this->MyFunction();
}
void CTestDlg::MyFunction() //在线程中要执行的函数
{
for(i = 0;i < 10000, i ++)
{
.........
}
}
void CUpdate_ToolDlg::OnButtonStop() //用来终止线程
{
PostThreadMessage(pThread->m_nThreadID,WM_TERM_THREAD,0,0); //WM_TERM_THREAD为自定义的消息,打算让线程获得
//该消息时终止
}