c++有非阻塞非循环式延时的函数吗?

sleep函数暂停线程,但是有问题啊......我不想这么做,请问有别的办法吗?既可以不让程序卡死,又不使用while占用cpu的办法.网上有个XSleep,不知道谁写的... sleep函数暂停线程,但是有问题啊......我不想这么做,请问有别的办法吗?
既可以不让程序卡死,又不使用while占用cpu的办法.
网上有个XSleep,不知道谁写的垃圾,不是一般的垃圾.我测试了下.延时10秒,循环1000次
I7 CPU直接100%....最后只能强制关机.
听说可以使用新线程,但是在主线程代码中间使用的延时,感觉其他方法都无济于事吧.
展开
 我来答
空雪梦见
2014-03-24 · TA获得超过5597个赞
知道大有可为答主
回答量:2522
采纳率:75%
帮助的人:1181万
展开全部
“非阻塞”和“延时”这两个本来就是冲突启颤的吧。
不吞食CPU但是要让线程挂起一段时间,方法自然枯滑是要求操作系统在一段时间的线程调度内不要给当前线程分配时间片
“非阻塞悄败败”……
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hpfdf
2014-03-24 · TA获得超过1928个赞
知道小有建树答主
回答量:382
采纳率:0%
帮助的人:592万
展开全部

你说的这个问题是平台相关的。


  1. linux平台  <unistd.h>

     fork() 用来分进程,返回新进程的pid

     新进程中 sleep(..) 用来阻塞暂停,

     父进程可以用waitpid(..) 来阻塞式的接受子进程结束扒缓的信号

  2. windows平台 <windows.h>

     参阅WaitForSingleObject(,,,)函数

  3. 其它的跨平台包装,例如和此谨Qt,提供了更方便的信号与槽的方法。

     将QTimer的结束事件连接到主工作类的work槽上即唤基可。

     

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Sweet丶奈何
高粉答主

2015-11-06 · 每个回答都超有意思的
知道大有可为答主
回答量:2.8万
采纳率:82%
帮助的人:4705万
展开全部
linux平台 <unistd.h>
fork() 用来分进程,返回新进程的pid
新进程中 sleep(..) 用来阻塞暂停,
父进告誉肆程可以用waitpid(..) 来阻塞式的接受子进程结束的信号
windows平台 <windows.h>
参阅WaitForSingleObject(,,,)函数

其它的跨平台包装袜轿,例如Qt,提供了更方虚银便的信号与槽的方法。
将QTimer的结束事件连接到主工作类的work槽上即可。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
狠角色的软弱
2015-10-24
知道答主
回答量:5
采纳率:0%
帮助的人:2.8万
展开全部
有的。具体的可以自己看看
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式