PDA

View Full Version : Thread usage -- how many and which one should be on main thread




99miles
Mar 1, 2009, 07:16 PM
I have a game with which mostly consists of the following:

a)Timer every second for clock
b)Timer ever 0.02 for animating many objects (this is always running)
c)User interaction with objects

I'm new to using multiple threads so I'm wondering what is suggested usage here. I currently have everything on the main thread except timer 'b' mentioned above. I'm reading that UI stuff should be on the main thread but it seems like that could be both 'b' and 'c' above.

And just an FYI, I'm using this to start the timer 'b' above:
[NSThread detachNewThreadSelector:@selector(startObjectsAnimation:) toTarget:animationHelper withObject:nil];

Then in animationHelper:

NSAutoreleasePool *autoreleasepool = [[NSAutoreleasePool alloc] init];
animationTimer = [NSTimer scheduledTimerWithTimeInterval:0.02 target:self selector:@selector(doAnimation:) userInfo:nil repeats:YES];
[[NSRunLoop currentRunLoop] addTimer:animationTimer forMode:NSDefaultRunLoopMode];
[[NSRunLoop currentRunLoop] run];
[autoreleasepool release];

Curious what people's thoughts are about this.

Thanks in advance.



99miles
Mar 2, 2009, 06:54 PM
Additional I see some people mention creating their own loop with a sleep interval instead of just using an NSTimer:

while (notDone)
{
[self performSelectorOnMainThread:@selector(updateInterface) withObject:nil waitUntilDone:NO];
[NSThread sleepForTimeInterval:0.5f];
}


Is that better for any reason than NSTimer?