请教线程问题。
在已有的界面上,我想点击按钮新起一个线程做事情。需要把当前的this指针传参给线程。
于是我写了下面的代码
void myDlg::OnBnClickedAutoorderStart()
{
// TODO: Add your control notification handler code here
DWORD ThreadID;
this->UpdateData();
this->isAutoOrder = true;
CWinThread* hThread=AfxBeginThread(
(AFX_THREADPROC)this->ThreadAutoOrder,
this);
GetDlgItem(IDC_AUTOORDER_START)->EnableWindow(FALSE);
GetDlgItem(IDC_AUTOORDER_STOP)->EnableWindow(TRUE);
}
void myDlg::OnBnClickedAutoorderStop()
{
// TODO: Add your control notification handler code here
this->UpdateData();
this->isAutoOrder = false;
GetDlgItem(IDC_AUTOORDER_START)->EnableWindow(TRUE);
GetDlgItem(IDC_AUTOORDER_STOP)->EnableWindow(FALSE);
}
这个界面除了这个“开始”“结束”,还有很多其他的控件。
运行之后,只要我点了“start”,界面上只有“stop”按钮可以正常工作,就是结束这个线程(也许吧)。但是我只要按界面上其他的一些按钮,整个界面就会no response,然后退出。请问是我在启动线程的时候写错了什么吗?