我對有關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實例可以嗎?
非常感謝你〜 –