NSMainQueueConcurrencyType
에서 performBlockAndWait
까지 NSManagedObjectContext
이 가능한 것으로 나타났습니다. 수신자의 (메인) 대기열 이외의 대기열에서 차단을 실행하십시오.NSManagedObjectContext의 performBlockAndWait : 수신자의 대기열에서 실행되지 않음
예를 들어, 내 parentContext
유형 NSMainQueueConcurrencyType
이며 내 childContext
유형 NSPrivateQueueConcurrencyType
의 경우 childContext
의 큐의 블록을 실행 내 parentContext
다음 코드 결과 :
[childContext performBlockAndWait:^{
//Thread 1, Queue: NSManagedObjectContext Queue
[parentContext performBlockAndWait:^{
//Thread 1, Queue: NSManagedObjectContext Queue
//This is the same queue as the child context's queue
}];
}];
다음 이 특급인가
[childContext performBlock:^{
[parentContext performBlockAndWait:^{
//Thread 1, Queue: com.apple.main-thread
}];
}];
: 내 parentContext
메인 큐에 블록을 실행 - 코드는 예상대로 작동 행동이 바뀌 었습니까? 그것은 문서 상태로 인해 나를 혼란스럽게합니다. "performBlockAndWait: synchronously performs a given block on the receiver’s queue."
코드가 실행되는 큐를 확인하려면 어떻게합니까? –