[發明專利]一種跨進程回調的實現方法有效
| 申請號: | 202011427093.8 | 申請日: | 2020-12-09 |
| 公開(公告)號: | CN112379952B | 公開(公告)日: | 2023-04-07 |
| 發明(設計)人: | 先澤強 | 申請(專利權)人: | 成都傲梅科技有限公司 |
| 主分類號: | G06F9/448 | 分類號: | G06F9/448;G06F9/445 |
| 代理公司: | 成都嘉企源知識產權代理有限公司 51246 | 代理人: | 胡建超 |
| 地址: | 610000 四川省成都市錦江區*** | 國省代碼: | 四川;51 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 跨進 程回調 實現 方法 | ||
1.一種跨進程回調的實現方法,其特征在于,包括如下步驟:
步驟S1.創建進程A,進程A為主進程;創建進程B,進程B為副進程;
步驟S2.進程A啟動,進程A創建并初始化共享內存,創建全局事件對象;
步驟S3.當收到來自進程A的跨進程回調,回調參數寫入到共享內存,將事件類型寫入到共享內存;
步驟S4.進程A給進程B發送通知,等待進程B全局事件對象返回;
步驟S5.進程B啟動,進入等待全局事件狀態,當收到A發送的通知,判斷是否為退出事件;
步驟S6.若為退出事件,則退出,進程B結束;若不是退出事件,則判斷首次啟動進程B時,共享內存中是否有未處理的事件操作;
步驟S7.若沒有未處理的事件操作,則進程B進入等待通知狀態,當進程B收到通知,從共享內存中獲取事件類型;若有未處理的事件操作,則從共享內存中獲取事件類型;
步驟S8.根據事件類型進入不同的事件流程,根據事件類型從共享內存中獲取此事件對應的數據,處理并將返回值寫入到共享內存,設置事件狀態為完成,返回繼續等待全局事件狀態;
步驟S9.進程A判斷是否返回超時,若超時,則設置錯誤碼并返回,進程A結束;若不超時,則從共享內存中獲取返回值,進程A結束。
2.如權利要求1所述的一種跨進程回調的實現方法,其特征在于,進程A為工作線程。
3.如權利要求1所述的一種跨進程回調的實現方法,其特征在于,進程B為界面進程或輔助進程。
4.如權利要求1所述的一種跨進程回調的實現方法,其特征在于,步驟S2中,進程A創建全局共享內存,并按固定的數據結構進行初始化。
5.如權利要求4所述的一種跨進程回調的實現方法,其特征在于,步驟S2中,初始化過程中,進行數據塊的區分。
6.如權利要求5所述的一種跨進程回調的實現方法,其特征在于,步驟S2中,根據數據塊的類型、邏輯偏移和大小,來進行數據塊的區分。
7.如權利要求1所述的一種跨進程回調的實現方法,其特征在于,步驟S4中,進程A有兩種方式給進程B發送通知,一是能夠即時響應的Socket套接字方式的跨進程通知方式;二是能夠異步處理事件的全局事件通知方式。
8.如權利要求7所述的一種跨進程回調的實現方法,其特征在于,全局事件通知方式的步驟包括:
A1.進程A啟動并創建全局的事件對象,并將此全局事件對象的訪問權限設置為Everyone。
9.如權利要求8所述的一種跨進程回調的實現方法,其特征在于,全局事件通知方式的步驟還包括:
A2.進程B第一次啟動,打開全局事件對象成功;
A3.從全局共享內存中獲得指定類型的數據。
10.如權利要求9所述的一種跨進程回調的實現方法,其特征在于,全局事件通知方式的步驟還包括:
A4.根據從全局共享內存中獲取到的事件類型進行對應的處理并設置返回結果;
A5.進程B設置消息處理的完成狀態。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于成都傲梅科技有限公司,未經成都傲梅科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202011427093.8/1.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種廢水處理設備及其使用方法
- 下一篇:一種快速備份NTFS文件系統的方法





