偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

iPhone開發(fā)之守護進程和前臺進程之間通信原理

移動開發(fā) iOS
本文介紹的是iPhone開發(fā)之守護進程和前臺進程之間的通信,主要講述的是進程之間的通信,先來看詳細內(nèi)容。

iPhone開發(fā)之守護進程和前臺進程之間的通信是本文要介紹的內(nèi)容,當我們創(chuàng)建基于mobilesubstrate的應用時,通常都是一些前后臺程序,典型的比如蘋果皮等,這個需要前臺程序法信息到后臺進程中,這里有兩種方式

一種是基于文件的模式

也就是在后臺程序中設定一個定時器,定時讀取用戶交互信息的文件,這樣實現(xiàn)的通信機制,雖然也解決了問題,但是,缺陷是需要一直跑一個定時器來查詢前臺是否傳遞信息過來了

還有一種是使用CFMessagePortRef

典型的如下模式:

  1. #define APP_ID "yohunl.support.mach.port"  
  2. #define MACH_PORT_NAME APP_ID 

在后臺進程中創(chuàng)建一個用于進程通訊的 CFMessagePortRef

  1. CFMessagePortRef local = CFMessagePortCreateLocal(kCFAllocatorDefault, 
  2. CFSTR(MACH_PORT_NAME), mouseCallBack, NULL, NULL);  
  3.   CFRunLoopSourceRef source = CFMessagePortCreateRunLoopSource(kCFAllocatorDefault, local, 0);  
  4. CFRunLoopAddSource(CFRunLoopGetCurrent(), source, kCFRunLoopCommonModes); 

其中的mouseCallback是回調(diào)函數(shù),其聲明是

  1. CFDataRef mouseCallBack(CFMessagePortRef local, SInt32 msgid, CFDataRef cfData, void *info); 

在前臺進程中使用發(fā)送消息的模式

  1. CFMessagePortRef bRemote = CFMessagePortCreateRemote(kCFAllocatorDefault, CFSTR(MACH_PORT_NAME));  
  2. // tell thread b to print his name  
  3. char message[255]="lingdaiping,yohunl";  
  4. CFDataRef data;  
  5. data = CFDataCreate(NULL, (UInt8 *)message, strlen(message)+1);  
  6. (void)CFMessagePortSendRequest(bRemote, CFSTR(MACH_PORT_NAME), data, 0.0, 0.0, NULL, NULL);  
  7. CFRelease(data);  
  8. CFRelease(bRemote); 

還有一種信號量的機制,本人也還沒研究,但是看見過別的程序中有使用過,應該也是可以的!

小結(jié):iPhone開發(fā)之守護進程和前臺進程之間的通信的內(nèi)容介紹完了,希望通過本文的學習對你有所幫助!

責任編輯:zhaolei 來源: 網(wǎng)絡轉(zhuǎn)載
相關推薦

2021-02-14 21:05:05

通信消息系統(tǒng)

2023-05-10 07:53:08

.Net開發(fā)多進程通信方式

2016-12-30 14:56:06

Native進程Trace

2019-11-08 14:47:49

TCPIP網(wǎng)絡

2021-07-15 12:44:25

Shell編程進程

2019-07-09 10:31:51

面試通信進程

2018-07-06 14:00:55

Linux進程線程

2010-06-28 14:52:30

cron進程

2024-01-05 08:41:31

進程間通信IPC異步通信

2021-07-06 21:30:06

Linux進程通信

2020-04-29 15:10:16

Linux命令進程

2025-05-29 08:10:00

Linux進程系統(tǒng)

2010-03-02 16:37:53

Linux Quagg

2017-08-06 00:05:18

進程通信開發(fā)

2021-09-30 10:45:33

Linux進程通信

2018-05-31 10:57:31

Linux系統(tǒng)進程線程

2011-06-22 17:27:19

QT 進程通信

2011-08-24 10:45:23

Oracle數(shù)據(jù)庫進程從屬進程

2009-11-24 11:35:59

2010-07-15 15:54:10

Perl守護進程
點贊
收藏

51CTO技術(shù)棧公眾號