나는 this, this, this과 같은 NSRunLoop
에 관한 많은 게시물을 읽었습니다. 그러나 NSRunLoop
실제로 내가 주로 참조하는 것이NSRunLoop의 기능은 무엇입니까?
- (void)threadProc
{
NSAutoreleasePool* pool1 = [[NSAutoreleasePool alloc] init];
BOOL isStopped = NO;
NSRunLoop *runloop = [NSRunLoop currentRunLoop];
[runloop addPort:[NSMachPort port] forMode:NSDefaultRunLoopMode];
while (!isStopped)
{
{
NSAutoreleasePool* pool2 = [[NSAutoreleasePool alloc] init];
[runloop runMode:NSDefaultRunLoopMode
beforeDate:[NSDate distantFuture]];
[pool2 release];
}
}
[pool1 release];
}
그리고 메인 스레드 내부 NSRunLoop와 작업자 스레드
wthread = [[NSThread alloc] initWithTarget:self selector:@selector(threadProc) object:nil];
[wthread start];
입니다
수행이에 몇 가지 작업을 통과 알아낼 수 없습니다 wthread
[self performSelector:@selector(someWork:) onThread:wthread withObject:nil waitUntilDone:NO];
주 스레드에서 wor 스레드 ker 스레드, 많은 사람들이 이것을 참조하십시오. NSRunLoop이 필요한 이유는 무엇입니까? 그것은 무엇을합니까?
이벤트를 관리하는 데 NSRunLoop
이 사용되었습니다. runModethreadProc
을 호출하는 것 외에는 다른 이유가 있습니까?
나는 멋진 동안 (사실이) {//이 작업이 여기에 수행 할 수 삽입 (Insert)}로 생각 (이벤트, 작업, 소켓 등) 실행할 코드를 동적으로 추가 할 수 있습니다. runloop은 실제로 비어 있지 않으며, 포트는 runloop에 연결되어 있으며 프로세스 간 통신의 한 형태입니다. – foFox
이 http://bou.io/RunRunLoopRun.html이 유용하다는 것을 알았습니다. – onmyway133