开发者

Simple NSThread or NSTimer

I want to run certain background tasks.

Scenario: I would like a button to activate a thread or timer, and then have the thread/timer to start repeating every second returning a NSRunInformationalAlertPanel to the user with data.

This is what I have for my timer:

-(void)workerThread:(NSTimer*) theTimer { 
    if(intNumberOfTicks > 0)
    {
        NSRunInformationalAlertPanel(@"The Serial", [NSString stringWithFormat:@"%d", intNumberOfTicks], @"OK", nil, nil);
        //[txtTimeMinutes setStringValue:[NSString stringWithFormat:@"%d", intNumberOfTicks]];
         intNumberOfTicks--;
    }
    else {
        [timer invalidate];
    }
}

And for starting the method...

intNumberOfTicks = 5;
timer = [[NSTimer scheduledTimerWithTimeInterval:1 target: self selector:@selector(workerThread:) userInfo:self repeats:true] retain];
        // Or for threading...
///[NSThread detachNewThreadSelector:@selector(workerThread) toTarget:self withObject:nil];

Can anyone help me implement what I need, maybe providing the most basic examples for a NSThread or NSTimer. I have looked at the Apple Dev 开发者_JAVA百科Refrences but no luck.


Using NSTimer will execute the selector in the same thread as the one which instantiated and invoked it.

If your task must be carried out in a background thread try calling performSelectorInBackground:withObject:

https://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Classes/nsobject_Class/Reference/Reference.html#//apple_ref/occ/instm/NSObject/performSelectorInBackground:withObject:

From that background thread you can use a scheduled timer the way that you described above.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜