GCD 또는 많은 스레딩을 내 애플 리케이션에서 사용하지는 않았지만 다른 스레드에서 하나 또는 두 개의 메소드를 실행해야하는 상황에 처했습니다. 이 메서드가 완료되면 콜백에서 주 스레드를 사용하여 다른 메서드를 호출해야합니다. 스레드가 작업을 마쳤지 만 여전히 너무 명확하지는 않은지 검색하는 방법을 살펴 보았습니다.콜센터 방식의 IOS 그랜드 센트럴 디스패치
테스트 응용 프로그램을 만들고 간단한 예제로 viewDidLoad 메서드를 사용했습니다.
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0), ^{
NSLog(@"viewDidLoad called");
sleep(5); // simulating a thread being tied up for 5 seconds
dispatch_async(dispatch_get_main_queue(), ^{
[self callbackMethod]; // method called after above thread has completed running
});
});
}
이 예제는 내가 수행하려는 작업에 적합합니까? 응용 프로그램을 실행할 때 sleep (5)가 끝난 후에 콜백 메서드가 호출 된 것처럼 보입니다. 이것은이 상황을 처리하는 올바른 방법입니까, 아니면 제가 길을 벗어 났습니까?
그래, 제대로 작동해야합니다. – geraldWilliam
빠른 답변을 보내 주셔서 감사합니다! @matt는 추가 링크도 제공해 주셔서 감사합니다. 매우 감사! – tg2007