子线程发出的通知,主线程如何接收处理

1.关键点是在主线程的runloop中加入一个machport
2.在子线程中,1)将要发出的通知加入一个数组中,然后通过主线程中的machport发出消息
2)在主线程中接收port来的消息,但其内部其实是访问主线程生成的数组(该数组在子线程中也能进行操作,怪不得要加锁)即可。
3.注意在主线程中处理通知的要区分出来当前线程(通知的监听者还能处理不同线程的)
4.NSMachPort是线程间通信的一种方式
注:
- (void)handlePortMessage:(NSPortMessage *)message;

准备工作

接收通知的函数

主线程接收port来的消息

参考链接:https://www.bbsmax.com/A/x9J2DXQed6/
https://developer.apple.com/library/archive/documentation/Cocoa/Conceptual/Notifications/Articles/Threading.html#//apple_ref/doc/uid/20001289-CEGJFDFG

版权声明:
作者:admin
链接:https://www.techfm.club/p/45711.html
来源:TechFM
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>