请教线程问题。

shysky1 2013-08-25 08:40:59
在已有的界面上,我想点击按钮新起一个线程做事情。需要把当前的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,然后退出。请问是我在启动线程的时候写错了什么吗?
...全文
664 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
shysky1 2013-08-25
  • 打赏
  • 举报
回复
引用 1 楼 hdt 的回复:
你在线程函数里面访问界面啦?
没有。我已经把线程函数做成最简单的了。还是有问题。 后来我把这个问题发在MFC版了,在: http://bbs.csdn.net/topics/390564402 您能移步帮我看一下这个问题吗?谢谢。
真相重于对错 2013-08-25
  • 打赏
  • 举报
回复
你在线程函数里面访问界面啦?

7,540

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 VC.NET
社区管理员
  • VC.NET社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧