cszhaoqm
驱动牛犊
驱动牛犊
  • 注册日期2002-12-01
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1290回复:3

Sleep()应用中出现在问题:

楼主#
更多 发布于:2003-05-15 17:28
Sleep()的应用出这样的问题(代码如下):

void CSSDlg::OnTest()
{
//test按钮响应
// TODO: Add your control notification handler code here
for(int m=0;m<100;m++)
{
UpdateData();//这条语句不影响
m_iNo=m; //编辑框控件对应成员变量
UpdateData(FALSE);
Sleep(10);
}
}
程序执行时看不出每一个数字递增的延时,并不是间隔太小(加大Sleep()间隔一样的结果!),而是在全部延时完后,数字从0变到99


只要它实现延时是没问题了,但关键是我要用它来实现定时采样,
不知道是不是它在延时这前发的消息还没来得及被系统响应就已经进入了Sleep(),而得不到正确的结果!



[编辑 -  5/16/03 by  cszhaoqm]
cszhaoqm
驱动牛犊
驱动牛犊
  • 注册日期2002-12-01
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-05-16 21:48
我好像解决了一点点相关的问题:
用多线程,在文本框内显示从0到100,用Sleep延时!

void CMultiProcess1Dlg::OnStart()
{
// TODO: Add your control notification handler code here
// Start to display

hThread=CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)ThreadProc,NULL,0,&ThreadID);
}

void ThreadProc()
{
CString m_time;
for(int i=0;i<100;i++)
 {
  m_time.Format(\"%d\",i);
  ::SetDlgItemText(AfxGetMainWnd()->m_hWnd,IDC_TIME,m_time);
  Sleep(20);
  }
}

void CMultiProcess1Dlg::OnStop()
{
// TODO: Add your control notification handler code here
TerminateThread(hThread,1);
}


[编辑 -  5/16/03 by  cszhaoqm]
cszhaoqm
驱动牛犊
驱动牛犊
  • 注册日期2002-12-01
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-05-16 20:12
To:zshuang
多谢大侠指点!
\"手工写编辑框的值\",我试过了,可以改变的,现在的问题就是一旦Sleep它就不做别的事了,全部sleep完后才写编辑框,不知是否需要用多线程,是不是Windows的消息队列处理不过来?
还请高手明示!

做一下修改后再测试:

void CSSDlg::OnTest()
{
    //test按钮响应
    // TODO: Add your control notification handler code here
    CString str;
   for(int m=0;m<100;m++)
   {
       UpdateData();//这条语句不影响
       m_iNo=m; //编辑框控件对应成员变量

       UpdateData(FALSE);//这条语句提前

       str.Format(\"%d\",m);
       MessageBox(str);//加上这条语句就可以看到编辑框的
                       //数字 在改变!!
       Sleep(10);
     }
}
 

[编辑 -  5/16/03 by  cszhaoqm]
right_wind
驱动中牛
驱动中牛
  • 注册日期2001-10-12
  • 最后登录2018-05-29
  • 粉丝1
  • 关注0
  • 积分60分
  • 威望66点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
  • 社区居民
地板#
发布于:2003-05-16 17:35
建议你试试手工写编辑框变量的值,看看有没有变化。
good good study, day day up。
游客

返回顶部