Thread usage -- how many and which one should be on main thread

Discussion in 'iPhone/iPad Programming' started by 99miles, Mar 1, 2009.

  1. macrumors member

    #1
    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:mad:selector(startObjectsAnimation:) toTarget:animationHelper withObject:nil];

    Then in animationHelper:

    NSAutoreleasePool *autoreleasepool = [[NSAutoreleasePool alloc] init];
    animationTimer = [NSTimer scheduledTimerWithTimeInterval:0.02 target:self selector:mad: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.
     
  2. macrumors member

    #2
    Additional I see some people mention creating their own loop with a sleep interval instead of just using an NSTimer:

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


    Is that better for any reason than NSTimer?
     

Share This Page