KVO后台线程

问题描述:

如果我在我的主线程上设置了kvo观察器,但后来在后台线程上我更改了被观察属性的值,我的主线程是否会立即中断,无论它在哪里?KVO后台线程

谢谢!

“如果我成立了志愿观察员在我的主线程......”

这是无关紧要的,你用来建立一个志愿观测什么的线程。 KVO观察者将在值被改变的线程上被回调。

我无法强调这一点 - KVO不为您管理线程安全!

接待员模式旨在解决这个问题。

https://developer.apple.com/library/ios/documentation/general/conceptual/CocoaEncyclopedia/ReceptionistPattern/ReceptionistPattern.html

不要试图简单地切换在observeValueForKeyPath使用GCD线程:ofObject变化:背景:没有中间对象,也可能会与反对的dealloc的竞争条件结束(见“取消分配问题“ - https://developer.apple.com/library/ios/technotes/tn2109/_index.html#//apple_ref/doc/uid/DTS40010274-CH1-SUBSECTION11

否您的主线程不会被打断,就像您在2分钟前发布的问题一样。

线程真正被中断的唯一方法是程序何时会收到一个信号。这通常只在事情真的出错时才会发生。 (SIGSEGV,SIGABRT等)