VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

搜索
查看: 977|回复: 7

[求助] VC延时

[复制链接]
32_avatar_middle
在线会员 发表于 2016-1-3 15:38:45 | 显示全部楼层 |阅读模式
大家好,用VC写延时函数,要求 1.时间准确,2.CPU占用率低。有多少种方法,各有什么有缺点。




上一篇:常量字符串的定义问题
下一篇:如何改变程序主窗口
51_avatar_middle
online_admins 发表于 2016-1-3 20:02:12 | 显示全部楼层
Sleep 函数是一种选择。。。
32_avatar_middle
ico_lz  楼主| 发表于 2016-1-12 12:54:49 | 显示全部楼层
sleep 时间不准,主要是会阻塞,而且还会提前跳出线程时间片。 这个很不好。
32_avatar_middle
ico_lz  楼主| 发表于 2016-1-12 12:59:41 | 显示全部楼层
我是做工业控制的,比如说一台机器,一个气缸有2个限位开关,当气缸电磁阀ON时我要判断2s以后 限位开关是否ON,如果没有ON 就要报警。   要独立线程, 而且一台机器有很多个这样的气缸。 时间不要求太准确,但不要占太多CPU。不能阻塞。
02_avatar_middle
在线会员 发表于 2016-1-13 06:59:06 | 显示全部楼层
本帖最后由 qxwvc6 于 2016-1-13 07:00 编辑

来个C语言的吧。
#include <ctime>
void wait_one_second()
{
    long t = time(NULL);
    t += 1;                                //把1该为几,就可以延时几秒
    while(time(NULL) < t); //等候1秒钟
}
53_avatar_middle
在线会员 发表于 2016-1-13 17:26:56 | 显示全部楼层
用WaitForSingleObject()试试吧。不知道能不能满足你的要求。
另外,我觉得5楼的代码占用cpu会比较高
32_avatar_middle
ico_lz  楼主| 发表于 2016-1-14 11:03:26 | 显示全部楼层
qxwvc6 发表于 2016-1-13 06:59
来个C语言的吧。
#include
void wait_one_second()

此函数 1. 会阻塞  在如果延时较长,会有卡死的现象。 2。占用CPU 很高
02_avatar_middle
在线会员 发表于 2016-1-14 11:08:47 | 显示全部楼层
谢谢,学习了。
请说个更好的办法。
您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

关闭

站长提醒上一条 /2 下一条

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号tongdun|网站地图wx_jqr

GMT+8, 2019-5-23 22:06

Powered by Discuz! X3.4

© 2009-2019 cctry.com

快速回复 返回顶部 返回列表