[发明专利]软件多定时器动态管理方法有效

专利信息
申请号: 201410668924.9 申请日: 2014-11-20
公开(公告)号: CN104391732B 公开(公告)日: 2018-12-11
发明(设计)人: 姜洪宇;杜啸晓;刘杰;张孝华 申请(专利权)人: 中国船舶重工集团公司第七二六研究所
主分类号: G06F9/50 分类号: G06F9/50;G06F8/41
代理公司: 上海汉声知识产权代理有限公司 31236 代理人: 郭国中
地址: 201108 *** 国省代码: 上海;31
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 软件 定时器 动态 管理 方法
【说明书】:

发明提供了一种软件多定时器动态管理方法,首先,定义数据结构,存储定时器标识和定时器超时处理方法;然后,定义队列,存储多定时器信息,每打开一个定时器,将此定时器的标识和处理方法放到队列中;每关闭一个定时器,就将此定时器的标识和处理方法从队列中删除;开启定时器,将定时器信息加入队列;从队列中取出一个节点,判断节点中存储的定时器标识是否与当前超时的定时器标识相同,若相同则该节点对应的定时器超时,按照节点中对应的处理方法处理;否则,判断是否已经取出所有节点,若是,则结束操作;否则,重新提取节点判断。本发明减少了多定时器动态开启关闭时对未开启定时器的非必要查询,减少了CPU开销,提高了系统运行速度。

技术领域

本发明涉及计算机领域,具体地,涉及一种软件多定时器动态管理方法。

背景技术

定时器,从字面理解,就是一个时钟,在设定了定时时间之后,经历了设定的时间之后,就会通知设置定时器的人员,时间已经到了,可以进行下一步工作了,在日常生活中,我们经常能接触到定时器,例如,半自动洗衣机中就有定时器,从开始洗衣,旋动定时旋钮,定时器就开启,到定时旋钮回到0,定时器时间到,洗衣结束,可以进行下一步放掉脏水等工作了。我们这里讲的定时器是在做计算机软件编程时,使用到的一种软件定时器,计算机软件逻辑也经常会出现需要设定一个或多个时间,在时间到了之后开始做下一步工作。例如全自动洗衣机,里面有一个计算机控制板,这个计算机控制板中运行的计算机软件就有我们所说的定时器,软件会自动设置定时器,开始第一步工作,在定时器时间到了之后在设置定时器开始第二步工作等。

在嵌入式系统中,使用Microsoft Visual C++编写软件代码同时对多个通信节点进行通信超时监视时,经常会使用到定时器,一般定时器的使用方法是使用SetTimer(UINTnIDEvent,UINT nElapse,void(CALLBACK EXPORT*lpfnTimer)(HWND,UINT,UINT,DWORD))函数,第一个参数表示设置的定时器的标识,在定时器响应函数中做定时器超时的处理。一般需要首先判断当前超时的定时器是否是等待需要处理的定时器,如果是,则处理,如果不是则不处理。

如图1所示,在Microsoft Visual C++中,常用的定时器方案为,使用SetTimer(UINT nIDEvent,UINT nElapse,void(CALLBACK EXPORT*lpfnTimer)(HWND,UINT,UINT,DWORD))函数设置定时器,一般指定定时器的标识,在时间响应函数OnTimer(UINTnIDEvent)中,判断当前超时的定时器是否为设置的定时器,即OnTimer(UINT nIDEvent)中nIDEvent是否等于SetTimer(UINT nIDEvent,UINT nElapse,void(CALLBACK EXPORT*lpfnTimer)中的nIDEvent。如果相同则处理。如果当前定时器需要关闭,则调用函数KillTimer(int nIDEvent)关闭定时器标识为nIDEvent的定时器,所以在定时器开启时,必须记录开启的定时器标识nIDEvent,在后面关闭定时器时用。这种做法的缺点是:所能设的定时器不能太多,否则,当一个线程的定时器过多时,需要在定时器处理函数中做大量的判断,判断当前是哪一个定时器超时,这种判断所带来的CPU开销在资源有限的嵌入式系统中是非常可观的,而且这种做法只能设置预先规定好定时器标识符的定时器,对于数量随时变化,各个定时器的开启和关闭也随时变化的情况,这种做法就非常难以实现。

常用定时器的语句举例如下:

SetTimer(101,300,NULL);

设置定时器标识为101的定时器,定时时间为300毫秒。

SetTimer(200,50,NULL);

设置定时器标识为200的定时器,定时时间为50毫秒。

本例程当前时刻开启了两个定时器,但本例程中,假设可能用到100个定时器。则一般定时器响应函数如下:

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国船舶重工集团公司第七二六研究所,未经中国船舶重工集团公司第七二六研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201410668924.9/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top