[发明专利]一种共用窗口的进程调用方法有效
申请号: | 200610090154.X | 申请日: | 2006-06-29 |
公开(公告)号: | CN101097529A | 公开(公告)日: | 2008-01-02 |
发明(设计)人: | 张庆 | 申请(专利权)人: | 腾讯科技(深圳)有限公司 |
主分类号: | G06F9/46 | 分类号: | G06F9/46 |
代理公司: | 北京同达信恒知识产权代理有限公司 | 代理人: | 郭润湘 |
地址: | 518044广东省深圳市*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 共用 窗口 进程 调用 方法 | ||
技术领域
本发明涉及计算机领域,尤其涉及一种共用窗口的进程调用方法。
背景技术
在计算机应用领域中,实现某一任务的程序代码被编译为一个可执行文件,每个可执行文件运行于内存中的不同空间,称为进程。
目前,在计算机应用领域,多为针对一个任务编译一个可执行文件,通过执行该文件可完成该任务所包含的多个子任务。多个子任务模块之间可能有功能重叠,即多个子任务模块的部分功能是相同的。此时,将多个子任务模块完成相同功能的共用代码进行函数封装,编译为动态链接库(Dynamic LinkLibrary,DLL)文件。当某个子任务需要实现共用功能时,调用该DLL文件。子任务模块在调用DLL文件时,通过函数接口向其传递参数,DLL文件利用该参数运行处理后生成结果值,并传回调用该DLL的子任务模块。
现有技术的这种任务执行方式存在以下缺点:
(1)当多个子任务模块需要同时调用一个DLL时,若该DLL文件由于运行时出现错误而崩溃,将会导致调用它的子任务模块崩溃,进而响应整个任务的执行。
(2)各子任务模块间有可能存在一个或多个DLL文件,因此耦合度较高,不易维护。
(3)由于多个子任务模块调用一个DLL文件,当释放其中一个子任务进程(如关闭该子任务模块)时,该子任务模块占用的资源不能完全释放,需要有一部分资源保证共用代码的正常运行。
发明内容
本发明提供一种多个任务共用一个窗口的方法,用以解决现有技术中一个任务中各子任务的进程之间相互影响,其中一个子任务的崩溃将会导致整个任务不能正常运行的问题。
本发明方法包括:
按照一个任务的各子功能将该任务划分为多个功能彼此独立的子任务,当其中的一个子任务运行时,该子任务进程调用其他子任务,并将自己的窗口句柄传递给被调用的子任务;
被调用的子任务运行时,其进程根据接收到的窗口句柄,将调用该子任务的进程的窗口作为其父窗口来创建自己的窗口。
根据本发明的上述方法,根据完成的功能将所述任务划分为多个功能彼此独立的子任务,并设定各子任务间的调用关系和调用方式。
所述当其中的一个子任务运行时,该子任务进程根据预先设定的调用方式和调用关系,直接调用其他子任务,或根据用户在界面上所作出的操作调用其他子任务。
根据本发明的上述方法,所述当其中的一个子任务运行时,该子任务进程向所述被调用的子任务传递自己的窗口句柄;
所述被调用的子任务进程将所述窗口句柄对应的窗口作为父窗口来创建自己的窗口。
根据本发明的上述方法,所述其他子任务为一个或多个。
各子任务运行时,其进程分别占用不同的资源空间。
本发明的有益效果如下:
(1)本发明将一个任务划分为多个功能彼此独立的子任务,子任务间通过进程调用实现整个任务功能,因此,当一个子任务的进程崩溃时,不会影响整个任务的执行。
(2)一个子任务调用另一个子任务时,将自己的窗口句柄传递给被调用的子任务,使被调用的子任务以该窗口句柄对应的窗口作为父窗口来创建自己的窗口,从而实现各子任务之间仅通过窗口句柄联系在一起,因此耦合度很低,易于维护。
(3)由于各子任务功能彼此独立,仅通过窗口句柄联系在一起,没有共用代码,因此,当释放其中一个子任务进程时,该子任务进程占用的资源能够完全释放,提高了运行效率。
附图说明
图1为本发明多个任务进程共用一个窗口的流程示意图。
具体实施方式
本发明提供一种多个任务进程共用一个窗口的方法,该方法首先将一个任务划分为多个子任务,每个子任务功能独立。在该任务执行过程中,运行一个子任务时,该子任务进程调用另一个子任务,并将自己的窗口参数传递给被调用的子任务进程;被调用的子任务进程创建自己的窗口时,根据接收到的窗口参数,将其对应的窗口指定为父窗口。
参见图1,为本发明多个任务进程共用一个窗口的流程示意图,具体步骤包括:
S10、按照一个任务的各种子功能将一个任务划分为多个功能彼此独立的子任务。
划分子任务时,设定各子任务间的调用关系和调用方式。调用关系确定一个子任务可调用哪个或哪些其他的子任务;调用方式确定在调用其他子任务时是不通过用户在界面上操作,由该子任务进程直接启动调用过程,还是根据用户在界面上操作启动调用过程。每个子任务的代码彼此独立,不存在共用代码的引用关系;每个子任务被分别编译为可执行文件。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于腾讯科技(深圳)有限公司,未经腾讯科技(深圳)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200610090154.X/2.html,转载请声明来源钻瓜专利网。