문제 설명 : 모든 백엔드 처리를 수행하는 보조 스레드가 하나 있습니다.이 보조 스레드에서 실행할 NSRunLoop을 별도로 생성했습니다. 우리가 만들고NSRunLoop이 오랜 지연 후 셀렉터를 호출 중임
NSAutoreleasePool *myPool = [[NSAutoreleasePool alloc] init];
NSRunLoop * threadRL = [NSRunLoop currentRunLoop];
[threadRL addPort:[NSMachPort port] forMode:NSDefaultRunLoopMode];
[threadRL run];
[myPool release];
모든 일을 실행하기 위해 거의 10 초를 복용하는 선택 호출 중 하나를 제외하고 잘 실행이 runloop에서 타이머를 사용하고이 때마다 무작위로 발생하지.
[myclass performSelector:@selector(func) onThread:myThread withObject:nil waitUntilDone:NO];
나는 차이점도없이 이것을 시도했다. 나는 아마도이 정도의 시간이 걸릴 수 FUNC에서 모든 작업을 수행하고 있지 않다
[myclass performSelector:@selector(func) onThread:myThread withObject:nil waitUntilDone:NO modes:[NSArray arrayWithObjects: NSDefaultRunLoopMode, NSRunLoopCommonModes,nil]];
는
내가 생각하고하는 것은 다른 모드에서 runloop이라고 할 수있을 것입니다.
펀드를 최고 우선 순위로 실행하는 방법이 있습니까? 즉, 런 루프에서 실행되고있는 항목이 중단되거나 이와 유사한 상황이 발생하게 할 수 있습니까?
이 런 루프에는 타이머가 부착되어 있습니다. 그리고 스레드의 다른 많은 performselector가 작동하지만이 func은 오랜 지연을 요구하지 않습니다. 그 이유는 실행 루프가 무언가를 처리하고있을 수 있습니다. 그러나 제 요구 사항은 func를 매우 우선 순위로 처리하는 것입니다. –