windows程序如何实现精准定时

1. 精度不高

windows98大概是55ms,Windows NT大概是10ms。

2. WM_TIMER消息可能无法及时处理

WM_TIMER消息和其他消息一样,存放在正常的消息队列之中。如果程序处理其他消息,用了太长的时间,就耽误了WM_TIMER消息的处理,从效果上看就相当于定时器来晚了。

3. WM_TIMER消息可能会有遗漏

这样一来,如果一个windows程序在时间方面有苛刻的要求(例如,测试仪之类的软件),怎么办呢。

“小兵以太网测试仪”采用的是如下的笨方法。

这种方法非常简单,但也确实有效。下面是此方法的伪代码。

interval=x; //所需的时间间隔

next_do_work_time=当前时间;

while (!need_stop)

{

do

{

cur_time=当前时间;

} while (!need_stop && cur_time

if (need_stop) break;

DO_WORK();

next_do_work_time+=interval;

}

需要说明的是,这种方法是很消耗CPU的 :)

(0)

相关推荐

  • Parallels Desktop停止Windows程序详细操作步骤

    Parallels Desktop停止Windows程序详细操作步骤 在Parallels Desktop中要立即停止Windows与所有打开的Windows程序,请进行以下当中的一项操作: 点击菜单 ...

  • Ubuntu下怎么安装运行windows程序

    这篇介绍一下通过wine这个软件让你在ubuntu系统中运行windows的程序,虽然目前还不合适所有的windows程序都能够通过wine来运行,但是还是有很多程序是可以的,所以让我们来尝尝鲜吧. ...

  • 用 Visual Studio 2015 编写第一个 Windows程序

    编程是"入门容易精通难"(的确是这样,我就是很快入了门,却从来没有精通过哈哈),尤其是有了 Visual Studio 这种利器的帮助.下面,就跟随我一起看看,编写一个有模有样的 ...

  • 如何强制关闭 Windows 程序

    Windows 程序经常会出故障.当需要关闭程序时,您会想到使用 Windows 的任务管理器.如果程序拒不合作,那您可能需要使用第三方程序.阅读本指南,了解如何强制关闭任何发生故障的 Windows ...

  • windows系统下oracle数据库定时自动备份

    实现目的:为避免数据丢失或错误,对数据库数据的定时备份 实现方式:oracle导出+windows 任务 完成 学习方法:先知其然,后知其所以然 实现过程: 1. 建立文件 backup.bat (自 ...

  • 利用任务计划程序实现电脑自动定时关机

    优点:不用借助第三方系统必备工具 缺点:对于电脑新手来讲步骤繁琐 怎么设置让我的电脑能定时自动关机?其实在微软在Vista及以后发布的系统中,已经内置了强大的计划任务功能,在不借助其他工具的情况下,你 ...

  • Win10系统打开任务计划程序用它来定时自动运行程序

    任务计划程序对不少人来说是一个重要的工具,小编就曾很长一段时间依靠它来定时自动运行程序。如今Win10系统已经发布,Win10上的任务计划程序又该如何打开呢?跟小编一起来看看。 操作步骤 第一步、鉴于 ...

  • Win10系统如何打开任务计划程序用它来定时自动运行程序

    任务计划程序对不少人来说是一个重要的工具,小编就曾很长一段时间依靠它来定时自动运行程序.如今Win10系统已经发布,Win10上的任务计划程序又该如何打开呢?跟小编一起来看看. 操作步骤 第一步.鉴于 ...

  • Win8系统如何定时运行程序?Win8系统定时运行程序的方法

    Win8系统如何定时运行程序?Win8系统虽然已经出来很久了,但是很多功能仍然鲜为人知,比如设定某一时间启动某些程序,这个功能很好用,如果我们需要经常打开一些软件,就可以进行这样的设定,但是Win8系 ...