System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 回调方法、装置、设备及存储介质制造方法及图纸_技高网

回调方法、装置、设备及存储介质制造方法及图纸

技术编号:42851942 阅读:23 留言:0更新日期:2024-09-27 17:19
本申请实施例涉及计算机技术领域,提供了一种回调方法、装置、设备及存储介质,所述方法包括:检测到主线程注册的回调函数被调用时,将回调函数的执行结果存储至主线程的异步回调转换成同步操作对象中,所述回调函数与所述主线程属于不同的线程;所述主线程检测到所述异步回调转换成同步操作对象中存在执行结果,则通过执行结果对应的第一成员函数响应所述执行结果,通过将执行结果存在主线程的对象中,在主线程检测到对象中存在执行结果之后响应执行结果,即主线程串行执行对于执行结果的响应。通过将两个线程之间的并行执行转换为主线程内串行执行,避免线程间交互引起的问题。

【技术实现步骤摘要】

本申请涉及计算机,更具体地,涉及一种回调方法、装置、设备及存储介质


技术介绍

1、在实际程序开发过程中,若当前程序不能实现用户需要的所有功能,则当前程序可通过调用其他库接口,以使用其他库的功能。

2、而在其他库中实现用户需要的部分功能是需要时间的,为了不影响当前程序的继续执行,很多时候当前程序调用的接口是异步的,调用后当前程序继续执行,其他库功能执行完成后,通过回调的方式将执行结果返回给当前程序。此时该回调的程序和当前程序是两个线程,通常回调回来的执行结果需要在主线程的成员函数中使用,但两个线程间交互涉及到数据安全等问题。


技术实现思路

1、本申请实施例提供了回调方法、装置、设备及存储介质,通过将异步回调转换为同步执行,避免线程间交互的安全问题。

2、第一方面,本申请实施例提供了一种回调方法,包括:

3、检测到主线程注册的回调函数被调用时,将所述回调函数的执行结果存储至主线程的异步回调转换成同步操作对象中,所述回调函数与所述主线程属于不同的线程;

4、所述主线程检测到所述异步回调转换成同步操作对象中存在执行结果,则通过执行结果对应的第一成员函数响应所述执行结果。

5、如此,在检测到主线程注册的回调函数被调用的情况下,由于主线程和回调函数分别属于不同的线程,在回调函数被调用时,主线程也在运行;获取回调函数的执行结果,将执行结果首先存储于预设的对象(即主线程所属类的异步回调转换成同步操作对象)中;然后检测到对象中存在执行结果,则通过执行结果对应的第一成员函数响应该执行结果。相较于回调函数和主线程两个线程的并行执行,本申请通过将执行结果存储在主线程所属类的对象中,在主线程检测到对象中存在执行结果之后响应执行结果,即主线程串行执行对于执行结果的响应。通过将两个线程之间的线程间并行执行转换为主线程内的串行执行,避免线程间交互引起的问题。

6、在一些实施例中,所述方法还包括:

7、获取所述执行结果的业务类型;

8、依据所述业务类型确定解析所述执行结果的主线程的第二成员函数。

9、在一些实施例中,所述将所述执行结果存储至主线程的异步回调转换成同步操作对象中,包括:

10、获取所述回调函数中执行结果所占用的第一内存空间,并在所述回调函数中申请与所述第一内存空间容量相同的所述异步回调转换成同步操作对象的第二内存空间;

11、将所述执行结果存储至所述第二内存空间中。

12、在一些实施例中,所述将所述执行结果存储至主线程的异步回调转换成同步操作对象中,包括:

13、确定所述执行结果对应的主线程中的第一成员函数;

14、将所述第一成员函数及所述执行结果存储至所述主线程的异步回调转换成同步操作对象中。

15、在一些实施例中,所述将所述执行结果存储至主线程的异步回调转换成同步操作对象中,包括:

16、解析所述执行结果并将解析后的执行结果存储至主线程的异步回调转换成同步操作对象对应的队列中;在所述执行结果缓存至所述队列过程中,对所述队列加锁处理。

17、在一些实施例中,所述方法还包括:

18、在所述回调函数被注册时,向所述回调函数传递所述异步回调转换成同步操作对象所属类对象的访问地址。

19、第二方面,提供一种回调装置,包括:

20、存储模块,用于检测到主线程注册的回调函数被调用时,将所述回调函数的执行结果存储至主线程的异步回调转换成同步操作对象中,所述回调函数与所述主线程属于不同的线程;

21、响应模块,用于所述主线程检测到所述异步回调转换成同步操作对象中存在执行结果,则通过执行结果对应的第一成员函数响应所述执行结果。

22、在一些实施例中,所述响应模块还用于:

23、获取所述执行结果的业务类型;

24、依据所述业务类型确定解析所述执行结果的主线程的第二成员函数。

25、第三方面,提供一种回调设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现第一方面任一项所述的方法。

26、第四方面,提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序被处理器执行时实现如上述第一方面的方法。

27、可以理解地,上述提供的第二方面、第三方面、第四方面均用于执行上文所提供的对应的方法,因此,其所能达到的有益效果可以参考上文所提供的对应的方法中的有益效果,此处不再赘述。

本文档来自技高网...

【技术保护点】

1.一种回调方法,其特征在于,所述方法包括:

2.如权利要求1所述的方法,其特征在于,所述方法还包括:

3.如权利要求1所述的方法,其特征在于,所述将所述执行结果存储至主线程的异步回调转换成同步操作对象中,包括:

4.如权利要求1所述的方法,其特征在于,所述将所述执行结果存储至主线程的异步回调转换成同步操作对象中,包括:

5.如权利要求1所述的方法,其特征在于,所述将所述执行结果存储至主线程的异步回调转换成同步操作对象中,包括:

6.如权利要求1所述的方法,其特征在于,所述方法还包括:

7.一种回调装置,其特征在于,包括:

8.如权利要求7所述的装置,其特征在于,所述响应模块还用于:

9.一种回调设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至6任一项所述的方法。

10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现权利要求1至6中任一项所述方法。

...

【技术特征摘要】

1.一种回调方法,其特征在于,所述方法包括:

2.如权利要求1所述的方法,其特征在于,所述方法还包括:

3.如权利要求1所述的方法,其特征在于,所述将所述执行结果存储至主线程的异步回调转换成同步操作对象中,包括:

4.如权利要求1所述的方法,其特征在于,所述将所述执行结果存储至主线程的异步回调转换成同步操作对象中,包括:

5.如权利要求1所述的方法,其特征在于,所述将所述执行结果存储至主线程的异步回调转换成同步操作对象中,包括:

6.如权利要求1所述...

【专利技术属性】
技术研发人员:周小勇
申请(专利权)人:深圳市锐明技术股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1