我对有关performBlock的文档展开感到困惑:PerformBlockAndWait: 它说:performBlock是异步的,withWait:在接收者的队列中是同步的。 是“接收器”是指NSManagedObjectContext? 如果上下文是私有类型,所以块在后台线程中执行,如果上下文是主类型并且该块在主线程中执行? 非常感谢NSManagedObjectContext performBlock线程
回答
没错。您正确理解文档。
“Receiver”是指现有的上下文,所以如果这是一个后台上下文,该块将在主线程上的后台线程中执行,如果它是主上下文的话。
两种方法都会在上下文的队列上执行该块(在后台线程上,在私有队列上下文的情况下)。但是,performBlockAndWait:
方法也会阻塞调用线程,直到块在后台线程上完成执行。
所以看起来好像,performBlock喜欢dispatch_asyn,而performBlockAndWait喜欢dispatch_syn,并且队列取决于私有类型(后台队列),主类型上下文(主线程队列)?谢谢 –
是的,这基本上是如何工作的。当然! –
非常感谢你〜 –
- 1. 取消NSManagedObjectContext performBlock
- 2. 的NSManagedObjectContext performBlock和dispatch_group_t
- 3. 嵌套performBlock:在NSManagedObjectContext
- 4. NSManagedObjectContext子队列与立即执行performblock
- 5. NSManagedObjectContext在performBlock中分配时为零
- 6. 核心数据进行的performBlock在后台线程
- 7. 只能在使用队列创建的NSManagedObjectContext上使用-performBlock:
- 8. NSManagedObjectContext的performBlock方法是否可以保证操作的顺序?
- 9. iOS 8应用程序崩溃时重置我的NSManagedObjectContext,而在performBlock
- 10. iOS PromiseKit和CoreData NSManagedObjectContext
- 11. 使用NSPrivateQueueConcurrencyType保存NSManagedObjectContext
- 12. 在线程之间传递NSManagedObjectContext
- 13. 设置CoreData NSManagedObjectContext线程优先级
- 14. IOS如何同步多线程NSManagedObjectContext?
- 15. 主线程在后台线程执行时等待[NSManagedObjectContext(_NSInternalAdditions)lockObjectStore]
- 16. 使用NSManagedObjectContext的块
- 17. ManagedObjectContext performBlock(与等待)死锁
- 18. 如何取消performBlock:
- 19. NSManagedObjectContext:performBlockAndWait与performBlock与通知中心
- 20. 父/子NSManagedObjectContext不工作
- 21. 的NSManagedObjectContext和GCD
- 22. NSManagedObjectContext锁定
- 23. 嵌套的NSManagedObjectContext保存的objectID
- 24. 并发与NSManagedObjectContext
- 25. NSManagedObjectContext死锁
- 26. 我可以在performBlock块中重新使用上下文吗?
- 27. NSManagedObjectContext performBlockAndWait当从两个线程调用时导致死锁
- 28. 的NSManagedObjectContext私人并发类型在主线程上执行块
- 29. iOS保存主线程NSManagedObjectContext在后台更改
- 30. 每个线程有多个NSManagedObjectContext实例可以吗?
非常感谢你〜 –