서버로가는 호출이 있습니다. UI 스레드가 아닌 보조 스레드에서 비동기 적으로 실행할 콜백을 원합니다. 여기 핵심 데이터가 멈추고 앱의 응답 성을 높이려고합니다. 이 콜백을 보조 스레드에서 실행하는 가장 좋은 방법은 무엇입니까? 코드 예제는 훌륭합니다!보조 스레드에서 Cocoa 블록 실행
[[SomeServer sharedInstance] doServerCallCallback:^(NSObject *param) {
NSManagedObjectContext *moc = [MYAPPDELEGATE managedObjectContext];
/* do more stuff with param */
[MYAPPDELEGATE saveManagedObjectContext];
}];
서버 호출 자체는 그러나 블록에서 실행되는 코드가 있어야 보조 스레드에있을 필요가 없습니다.
SomeServer 구현을 변경할 필요가 없습니다. 전달한 블록은 작업을 오프 스레드 큐로 보낼 수 있습니다. –
@GrahamLee 그것은 OP가 하나의 특정 블록이나 다른 스레드에서 실행되도록 서버로 전달 될 수있는 블록을 원하는지에 따라 다릅니다. 귀하의 접근 방식은 괜찮지 만 첫 번째 경우에만 가능합니다. 서버를 변경하면 모든 경우에 서버가 처리됩니다. – Caleb