1
적어도 iOS 9 이후 메인 스레드에서 실행되지 않는 코어 데이터 작업에 대한 비 비시 스레드 동시성 유형은 NSPrivateQueueConcurrencyType입니다. 코어 데이터 설정 NSManagedObjectContext 스레드 우선 순위
...:(int) neededPriority {
_queue = dispatch_queue_create("Worker", DISPATCH_QUEUE_SERIAL);
dispatch_set_target_queue(_queue,
dispatch_get_global_queue(neededPriority, 0));
때때로 나는 높은 우선 순위를 필요로, 때로는 낮은 : 내 문제는 내가 같이, 그것을 위해 스레드 우선 순위를 변경하려는 지금이다. 그러나
[_privateContext performBlock:...]
을 호출 할 때 필요한 우선 순위를 가진 매개 변수를 전달할 수 없으며 문맥에 스레드 우선 순위를 설정하는 속성도 없습니다.
내 질문 : 특정 스레드 우선 순위로 컨텍스트 대기열을 넣어 어떤 방법이 있습니까?
주 스레드에서'performBlockAndWait :'를 사용하면 큐는 주 스레드에서 블록을 실행합니다. 따라서 모든 'NSThread' 호출은 메인 스레드에 적용됩니다. –
감사합니다. NSLog (@ "오래된 스레드 우선 순위 : % f", [NSThread threadPriority]); if (! [NSThread setThreadPriority : 0.1]) { NSLog (@ "우선 순위를 설정할 수 없습니다!"); } else { NSLog (@ "새 스레드 우선 순위 : % f", [NSThread threadPriority]); }'이 효과가있는 것으로 나타났습니다. – Jan