12 피트에서 별도의 스레드 (2에서 5)로 2 차원 애니메이션을 실행 중입니다.
"performSelector : withObject : afterDelay"로 지정된 위치의 지정된 시간에 각 스레드 표시 이미지
1 개의 애니메이션에서는 정상적으로 작동하지만 2 개 이상의 스레드가 동시에 2 개 이상의 애니메이션을 실행하면 애니메이션 속도가 느려집니다 아래로 눈에 띄게.NSThread 메시지 전달을 가속화하십시오.
그것은 2+ 스레드가 스레드 당 초 당 'performSelector'를 동시에 (12)의 주위에 배를 호출 할 때 NSThread은 (afterDelay에) 지정된 것보다 훨씬 더 많은 시간
performSelector:withObject:afterDelay
걸리는 것으로 나타났다.
NSThread가 performSelector로 대기중인 메시지를 빠르게 수신하도록 구성 할 수 있는지 궁금합니다.
나는 또한 메시지 픽업 속도를 늦추고있는 것이 궁금합니다. 어쩌면 스레드 전환이 느린가요?
- (void) myThreadMain
{
NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init];
// Add your sources or timers to the run loop and do any other setup.
NSRunLoop *runloop = [NSRunLoop currentRunLoop];
[runloop addPort:[NSMachPort port] forMode:NSDefaultRunLoopMode];
do
{
// Start the run loop but return after each source is handled.
SInt32 result = CFRunLoopRunInMode(kCFRunLoopDefaultMode, 10, YES);
}
while (self.isNeedToExit == false);
[pool release];
SYSLOG(LOG_DEBUG, "thread exiting");
}
아이폰 용 (태그가있는 경우) : 귀하의 경우 왜 (특히) 5 개의 작업자 스레드가 하나보다 낫다고 말할 수 있습니까? (여러 경우에 유용 할 수 있습니다.) – justin
여러 개의 백그라운드 스레드에 애니메이션 프레임을 그려야한다는 것을 올바르게 이해 했습니까? – Costique