任务实现装置和方法、以及应用

文档序号:8258164阅读:213来源:国知局
任务实现装置和方法、以及应用
【技术领域】
[0001]本发明涉及计算机应用技术领域,尤其涉及任务实现装置和方法、以及应用。
【背景技术】
[0002]随着计算机和网络技术的迅速发展,诸如具有多种应用的智能手机、平板电脑等移动终端越来越普及并成为人们生活中必不可少的信息获取工具,人们可以在移动终端上安装并使用多种应用,例如手机游戏、聊天工具、视频播放、音乐播放等等。许多应用由于自身设计的限制,在某种程度上限制了应用的功能的扩展,而且使应用在性能、兼容性方面不够好。
[0003]例如手机游戏通常使用游戏引擎自带的功能进行截图,但是受游戏引擎的限制,截图方法不具有通用性,例如,U3D的截图方法只能用于U3D,C0C0S2DX的截图方式只用于Cocos2DXo另外,有些游戏引擎中需要处理线程的问题,但是只有OpenGL线程才能处理截图相关功能。还有,有些游戏引擎对某些功能的兼容性方面不够好,例如在某个版本、某个设备下,截图功能失效。

【发明内容】

[0004]鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的任务实现装置和方法、以及应用。
[0005]依据本发明的一个方面,提供了一种任务实现装置,所述任务是主程序运行过程中需要执行的一个或者多个任务,所述主程序在主线程上运行,所述任务在一个或多个次线程上执行,所述装置包括:任务执行模块,其适于在所述次线程上运行以实现预定任务,产生任务结果;调用模块,其适于主程序在主线程上运行时调用所述任务执行模块;启动模块,其适于启动运行所述任务执行模块的次线程;以及获取模块,其适于使所述主程序获得所述任务结果。
[0006]可选地,所述任务执行模块包括请求查询单元和执行单元,所述请求查询单元适于查询来自主线程发出的执行所述预定任务的请求。所述执行单元适于在所述请求查询单元查询到执行所述预定任务的请求的情况下执行所述预定任务并产生所述任务结果。
[0007]根据本发明的另一方面,提供一种任务实现方法,所述任务是主程序运行过程中需要执行的一个或者多个任务,所述主程序在主线程上运行,所述任务在一个或多个次线程上执行,所述方法包括:所述主程序调用在所述次线程上运行的任务执行程序,所述任务执行程序执行一预定任务;启动运行所述任务执行程序的次线程;所述任务执行程序运行而产生执行结果;所述主程序获取所述执行结果。
[0008]可选地,所述任务执行程序运行而产生执行结果的步骤包括:查询是否存在来自主线程发出的执行所述预定任务的请求;在查询到执行所述预定任务的请求时执行所述预定任务并产生所述任务结果。
[0009]根据本发明的又一方面,提供一种应用,其主程序在主线程上运行,所述应用在运行时执行一个或者多个任务,所述任务在一个或多个次线程上执行,所述应用包括权利要求1-7中任何一项所述的任务实现装置。利用本发明的一方面可以减少主程序本身的负荷,另一方面操作更灵活,实现更容易,并且可以使程序兼容性更好。
[0010]上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的【具体实施方式】。
【附图说明】
[0011]通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
[0012]图1示出了根据本发明的一个实施例的任务实现装置的方框示意图;以及
[0013]图2示出了根据本发明的另一个实施例的任务实现方法的流程图。
【具体实施方式】
[0014]下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
[0015]本发明提供的任务实现装置主要针对某一任务在同一线程、同一应用、或者同一网络平台中不能实现,但在其它线程、其它应用、或者其它网络平台中能够实现时,调用在其它线程、其它应用、或者其它平台上的任务执行程序,执行并将其任务结果发送给原线程、原应用、或者原网络平台来使用的情形。
[0016]下面以任务在同一应用的不同线程之间实现为例进行说明。这里所说的线程包括执行应用的主线程以及除了主线程之外的其它线程,为了与主线程进行区分,将除主线程之外的其它线程称之为次线程。
[0017]图1示出了根据本发明的一种实施例的任务实现装置的方框示意图。如图1所示,任务实现装置100包括任务执行模块110、调用模块120、启动模块130、以及获取模块140。
[0018]其中,调用模块120适于应用主程序在主线程上运行时调用实现某一预定任务的任务执行模块110,通常以发出一个请求的方式开始调用。启动模块130则启动运行所述任务执行模块110的次线程,以使所述任务执行模块110开始运行。
[0019]任务执行模块110在应用的次线程中执行某一预定任务的任务执行程序,以实现某一预定任务,产生任务结果。任务执行模块110针对不同的预定任务,可以有多个,不同的任务执行模块110执行不同的预定任务。在图1中,为了简洁起见,只示出了一个任务执行模块110。
[0020]具体地,任务执行模块110可以包括请求查询单元111和执行单元112。其中,请求查询单元111适于查询来自主线程发出的执行所述预定任务的请求,例如应用主程序在主线程上运行时发出的更新某一手机游戏的功能的请求、游戏截图的请求等等。由于不同的请求要执行的预定任务由不同的任务执行模块110来执行,所以每一任务执行模块110的请求查询单元111定时查询来自主线程的请求中是否存在执行其对应预定任务的请求。执行单元112适于在请求查询单元111查询到执行所述预定任务的请求的情况下在相应的次线程上执行所述预定任务并获得任务结果。
[0021]下面主要以移动终端为智能手机、应用为安装在智能手机中的手机游戏为例进行说明。在这个例子中,只包含执行游戏截图这一个预定任务的任务执行模块110。
[0022]通常,手机游戏在启动时,会启动主线程,游戏的主程序在主线程上运行。游戏玩家在玩手机游戏的过程中,可能会与其它游戏玩家讨论、分享一些玩游戏的技巧,为了交流充分时,可能需要对游戏的某一画面执行截取的操作,由于游戏截图在主线程上无法实现,需要在OpenGL这一次线程上来实现,因此,调用模块120会调用执行游戏截图这一预定任务的任务执行模块110,发出执行游戏截图这一预定任务的请求。例如,当游戏玩家点击游戏显示界面上的“游戏截图”的按钮时,即发送了一个“游戏截图”的请求。启动模块130会启动执行游戏截图的这一预定任务的OpenGL线程。执行游戏截图的任务执行模块110的请求查询单元111查询是否存在执行游戏截图的请求,当查询到存在执行游戏截图的请求时,执行单元112执行游戏截图这一任务执行程序,产生所需的游戏截图的任务结果,并通知获取模块140游戏截图完成。然后获取模块140获取所述游戏截图,并将所述游戏截图提供给所述应用主程序,从而使得所述应用能够实现获得游戏截图的功能。
[0023]可选地,本发明的任务执行装置100还包括请求管理模块150。请求管理模块150适于存放所述主线程和所述次线程发出的请求,供相应的模块或部件查询所述请求。这一方面可以使得对同一任务执行模块110的多个请求进行排队,依次执行;另一方面,当存
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1