Как повторно вызывать NSThread? - PullRequest
0 голосов
/ 12 сентября 2011

Я работаю над приложением, в котором мне нужно повторно вызывать поток. В этом потоке мы должны проанализировать XML и получить обновленные данные из этого XML. теперь, пожалуйста, объясните мне, как повторно вызывать эту тему? если мой поток работает и мой код вызывает его снова, то я думаю, что у него будет сбой.

Ответы [ 2 ]

1 голос
/ 12 сентября 2011

Разделите код на новый метод

-(void) thisMethodWillRunAsASeparateThread
{
    //Threads need their own pool.
    NSAutoreleasePool *pool = [NSAutoreleasePool new];
    while (thisThreadShouldRun)
    {
        // run xml parsing code
    }
    [pool release];
}

и для начала потока:

[NSThread detachNewThreadSelector:@selector(thisMethodWillRunAsASeparateThread) toTarget:self withObject:nil];
0 голосов
/ 12 сентября 2011

Для повторного вызова любого кода вы должны NSTimer, например:

NSTimer *timer = [NSTimer scheduledTimerWithTimeInterval:0.10f target:self 

selector:@selector(methodName)  userInfo:nil repeats:YES];

, вам следует отключить таймер после использования.в то время как если вы хотите выполнить код, используя фоновый поток, вы должны этот код, но это не будет повторяться несколько раз.

[NSThread detachNewThreadSelector:@selector(methodName:) toTarget:self withObject:objName,nil]];
...