关于用sleep作延时出现的问题

xotao831022 2010-12-30 12:01:41
在OnintDialog中我想要作一个延时的操作,于是我写了下面几句话

for(i=0;i<20000;i++)
{
Sleep(1);
}

上面我大约延时了20秒,但是不知道为什么我加上这一句话以后我的软件启动以后会死掉,这个是什么原因??

用Sleep作延时会使得软件死机吗??应该不会吧。那我这句话加上后为什么 软件会死呢??有人可以跟我分析一下这是什么原因吗??
...全文
217 22 打赏 收藏 转发到动态 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
Sou2012 2010-12-30
  • 打赏
  • 举报
回复
你把界面线程堵死了。
Sou2012 2010-12-30
  • 打赏
  • 举报
回复
尽量不要在主线程中调用 sleep
Jimmy_Xia 2010-12-30
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 ilysony 的回复:]

你把界面线程堵死了。
[/Quote]
正解。。。
jisonzheng 2010-12-30
  • 打赏
  • 举报
回复
学习,长见识了...
zzw820626 2010-12-30
  • 打赏
  • 举报
回复
楼上都说对了,哈哈
Simon4638 2010-12-30
  • 打赏
  • 举报
回复
都是高手,学习了~
手机写程序 2010-12-30
  • 打赏
  • 举报
回复
在OnintDialog中我想要作一个延时的操作会卡死ui,延时结束就正常了.
Nov_c 2010-12-30
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 xianglitian 的回复:]
Sleep会使程序挂起
这是很正常的事啊
[/Quote]
+
CassiaBlossom 2010-12-30
  • 打赏
  • 举报
回复
你搞笑呢,for 20000次
不知道你什么意思,你用sleep(20000)不就可以了,多此一举
CassiaBlossom 2010-12-30
  • 打赏
  • 举报
回复
你用sleep没有错,错就在于你为什么还要用for循环?
信阳毛尖 2010-12-30
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 fishion 的回复:]
还有就是不要在主线程中用sleep
[/Quote]

如果是在界面线程工作, 就不能sleep, 不然就会卡死, 因为消息已经无法传递或者响应了
傻X 2010-12-30
  • 打赏
  • 举报
回复
记时还是用OnTimer把
fishion 2010-12-30
  • 打赏
  • 举报
回复
还有就是不要在主线程中用sleep
fishion 2010-12-30
  • 打赏
  • 举报
回复
Sleep的精度是几十毫秒到100毫秒左右的,所以你sleep(1)就会有问题了
Eleven 2010-12-30
  • 打赏
  • 举报
回复
[Quote=引用楼主 xotao831022 的回复:]
在OnintDialog中我想要作一个延时的操作,于是我写了下面几句话

for(i=0;i<20000;i++)
{
Sleep(1);
}

上面我大约延时了20秒,但是不知道为什么我加上这一句话以后我的软件启动以后会死掉,这个是什么原因??

用Sleep作延时会使得软件死机吗??应该不会吧。那我这句话加上后为什么 软件会死呢??有人可以跟我分析一下这是……
[/Quote]
你是在UI线程中Sleep,那么界面就不能响应其它的消息,就卡在那里了
花熊 2010-12-30
  • 打赏
  • 举报
回复
use MsgWaitForMultipleObjects or MsgWaitForMultipleObjectsEx, rather than Sleep.主线程不要用sleep,
jackson35296 2010-12-30
  • 打赏
  • 举报
回复
你这样做是不对的,操作系统对线程的调度是无法精确到1ms的,我做过实验的sleep(1)实际上等于sleep(10)-sleep(20)。而不是准确的1ms。按这个计算,你循环20000次,相当于等了200s-400s,大约是3-7分钟。你直接写一个sleep(20000)就完事,为啥非得用循环?
信阳毛尖 2010-12-30
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 xianglitian 的回复:]
Sleep会使程序挂起
这是很正常的事啊
[/Quote]
的确是这样,你的程序是多线程吗?
__lhy 2010-12-30
  • 打赏
  • 举报
回复
主线程睡着了,而且睡的很深,所有她没有反应!
向立天 2010-12-30
  • 打赏
  • 举报
回复
Sleep会使程序挂起
这是很正常的事啊
加载更多回复(1)

16,467

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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