Eri*_*ner 8 cocoa cocoa-touch core-data objective-c
我想用一个NSOperationQueue
来调度CoreData操作.但是,操作队列行为并不总是相同(例如,它libdispatch
在使用线程池的iOS 4.0/OS 10.6上调度),并且队列可能并不总是使用相同的线程(根据NSManagedObjectContext
需要).
我可以强制序列NSOperationQueue
在单个线程上执行吗?或者我必须为此创建自己的简单排队机制?
\n\n\n我可以强制串行 NSOperationQueue 在单个线程上执行吗?\n 或者我是否必须为此创建自己的简单排队机制?
\n
您不需要执行其中任何一项操作。Core Data 真正需要的是您没有两段代码同时对托管对象上下文进行更改。在Concurrency with Core Data的开头甚至有这样的注释:
\n\n\n\n\n注意:您可以使用线程、串行操作队列或调度队列来实现并发。\n 为了简洁起见,本文始终使用 \xe2\x80\x9cthread\xe2\x80\x9d 来指代其中任何一个。
\n
真正需要的是在给定的上下文上序列化操作。如果您使用单线程,这种情况自然会发生,但如果您设置maxConcurrentOperationCount
为 1,NSOperationQueue 也会序列化其操作,因此您不必担心确保所有操作都在同一线程上进行。
归档时间: |
|
查看次数: |
1343 次 |
最近记录: |