我有一些NSConfinementConcurrency
用于其 CoreData 的遗留代码,我将它们的使用切换到NSPrivateQueueConcurrencyType
or NSMainQueueConcurrencyType
。
是否有任何问题或风险从 切换NSConfinementConcurrencyType
到NSPrivateQueueConcurrencyType
并且NSMainQueueConcurrencyType
应该注意?
我有一些NSConfinementConcurrency
用于其 CoreData 的遗留代码,我将它们的使用切换到NSPrivateQueueConcurrencyType
or NSMainQueueConcurrencyType
。
是否有任何问题或风险从 切换NSConfinementConcurrencyType
到NSPrivateQueueConcurrencyType
并且NSMainQueueConcurrencyType
应该注意?
NSMainQueueConcurrencyType 创建与主调度队列相关联的上下文,从而与主线程相关联。您可以使用这样的上下文将其链接到需要在主线程上运行的对象,例如 UI 元素。
NSPrivateQueueConcurrencyType 创建和管理一个私有调度队列来操作。您必须使用新方法 performBlock: 或 performBlockAndWait:。然后上下文将在其自己的私有队列上执行传递的块。
最后,NSConfinementConcurrencyType 是默认类型,只能在创建它的线程中使用。因此,在您的 NSOperation 中,您以正确的方式使用它。一个简单的注释。如果要将其用作子上下文,则需要有一个“队列上下文”(NSMainQueueConcurrencyType 或 NSPrivateQueueConcurrencyType)。