[发明专利]一种多优先级的线程消息处理方法有效
申请号: | 201410734742.7 | 申请日: | 2014-12-04 |
公开(公告)号: | CN104391752B | 公开(公告)日: | 2019-01-18 |
发明(设计)人: | 马风军 | 申请(专利权)人: | 中国电子科技集团公司第四十一研究所 |
主分类号: | G06F9/54 | 分类号: | G06F9/54 |
代理公司: | 北京天奇智新知识产权代理有限公司 11340 | 代理人: | 贾文健 |
地址: | 266555 山东省*** | 国省代码: | 山东;37 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 优先级 线程 消息 处理 方法 | ||
1.一种多优先级的线程消息处理方法,其特征在于,包括:
判断消息的线程优先级;
若所述消息用于人机界面操作或对处理时间顺序无要求,所述消息也无需提供处理反馈信息的操作,则将该消息判定为异步优先级;否则判断该消息是否为回调或同步优先级;
若所述消息用于人机界面操作或对处理时间顺序无要求,但所述消息需提供处理反馈信息的操作,则将该消息判定为回调优先级;否则判断该消息是否为安全调用;
若所述消息对处理顺序有要求,则将该消息判定为同步优先级;若所述消息对处理顺序有要求,但相比当前同步处理还能更快响应且不破坏当前消息的处理,则判定该消息为安全调用优先级;如破坏当前消息的处理则判定该消息为对实时性要求级别最高;若所述消息对实时性要求级别为最高,则判定该消息为紧急调用;
若所述消息为异步优先级,则通过Windows平台提供的线程消息路由将该消息转发给线程预处理接口进行预处理;进行预处理后,发送到特定线程消息路由器;
若所述消息为回调或同步优先级,则通过所述Windows平台提供的线程消息路由将该消息转发给窗口进行处理,进行窗口处理后,发送到所述特定线程消息路由器;
若所述消息为安全调用优先级,则将该消息发送到所述特定线程消息路由器;
若判断所述消息为紧急调用,则将该消息发送到所述特定线程消息路由器;
通过所述特定线程消息路由器调用与所述消息的优先级对应的处理接口,处理所述消息;
所述通过所述特定线程消息路由器调用与优先级对应的处理接口,处理所述消息,具体包括:
遍历搜索线程的消息映射数据;
如搜索到消息对应的处理接口,则由该消息对应的处理接口进行处理;
否则通过Windows平台提供的所述特定线程消息路由器进行处理。
2.根据权利要求1所述的方法,其特征在于,所述将该消息转发给窗口进行处理包括:窗口经由自己消息路由机制进行到消息处理时,再使用线程提供的处理接口;即,优先级由窗口负责,处理由线程负责。
3.根据权利要求1所述的方法,其特征在于,若所述消息为异步优先级、回调或同步优先级、安全调用优先级时,所述通过所述特定线程消息路由器调用与所述消息的优先级对应的处理接口,处理所述消息,包括:
判断所述特定线程消息路由器是否锁定;
若锁定,进行线程同步,等上一个消息处理完后才能进行当前消息处理;
若未锁定,通过该特定线程消息路由器调用与所述消息的优先级对应的处理接口,处理所述消息,并同时进行锁定;
其中,所述锁定表示存在正在进行处理的消息;所述未锁定,表示不存在正在处理的消息。
4.根据权利要求1所述的方法,其特征在于,所述将该消息转发给窗口进行处理包括:
具体由所述窗口的相应接口进行处理,该接口是所述Windows平台提供的;
在所述Windows平台提供的窗口消息机制内路由,最终交给所述窗口的窗口处理做处理前的裁决;
所述窗口处理将消息发送给线程提供的特定消息路由接口;
其中,所述窗口是为线程定制的特殊窗口,该窗口不可见,且除了创建与关闭之外不处理任何窗口消息。
5.根据权利要求1所述的方法,其特征在于,所述消息的数据格式与所述Windows平台提供的数据格式相同。
6.根据权利要求1-5任一项所述的方法,其特征在于,该方法采用C++语言与面向对象设计,通过统一的接口封装内部的消息处理。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国电子科技集团公司第四十一研究所,未经中国电子科技集团公司第四十一研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410734742.7/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种计算机容错方法及系统
- 下一篇:继电保护装置保护元件动态调用的实现方法