2014-12-29 2 views
0

performBlock : 및 PerformBlockAndWait : 에 대한 문서를 작성하는 데 혼란 스럽습니다. performBlock은 async이고 withWait :는 수신자의 대기열에 동기화되어 있습니다. "수신자"가 NSManagedObjectContext를 참조합니까? 컨텍스트가 개인 유형이므로 컨텍스트가 주 유형이고 블록이 주 스레드에서 실행되는 경우 블록이 백그라운드 스레드에서 실행됩니까? 많은 감사NSManagedObjectContext performBlock thread

답변

0

정확히. 문서를 올바르게 이해했습니다.

"수신자"는 기존 컨텍스트를 나타내므로이 컨텍스트가 백그라운드 컨텍스트 인 경우 주 스레드 인 경우 주 스레드 인 경우 백그라운드 스레드에서 블록이 실행됩니다.

+0

덕분에 ~ –

0

두 가지 방법 모두 컨텍스트 대기열 (개인 대기열 컨텍스트의 경우 백그라운드 스레드에서)에서 차단을 수행합니다. 그러나 performBlockAndWait: 메서드는 블록이 백그라운드 스레드에서 실행을 완료 할 때까지 호출 스레드를 차단합니다.

+0

performBlock은 dispatch_asyn을 좋아하고 performBlockAndWait는 dispatch_syn을 좋아하며 대기열은 개인 유형 (백그라운드 대기열), 기본 유형 컨텍스트 (주 스레드 대기열)에 따라 다릅니다. 덕분에 –

+0

그래, 그게 본질적으로 어떻게 작동하는지. 확실한! –

+0

많은 분들께 감사드립니다 ~ –

관련 문제