现在的位置: 首页 > 综合 > 正文

iOS之线程间通信

2013年09月09日 ⁄ 综合 ⁄ 共 452字 ⁄ 字号 评论关闭

 Cocoa为iOS线程间通信提供2种方式,1种是performSelector,另1种是Port。

  先说第1种,performSelector,有以下几种:

  

  第2种为NSMachPort方式。NSPort有3个子类,NSSocketPort、NSMessagePort、NSMachPort,但在iOS下只有NSMachPort可用。

     使用的方式为接收线程中注册NSMachPort,在另外的线程中使用此port发送消息,则被注册线程会收到相应消息,然后最终在主线程里调用某个回调函数。

     可以看到,使用NSMachPort的结果为调用了其它线程的1个函数,而这正是performSelector所做的事情,所以,NSMachPort是个鸡肋。线程间通信应该都通过performSelector来搞定。

另外一种是GCD方式:

dispatch_async(dispatch_get_main_queue(), ^{
resultsTextView.text = resultsSummary;
});

抱歉!评论已关闭.