如何反复拨打NSThread?

时间:2011-09-12 11:17:25

标签: iphone xml nsthread

我正在开发一个必须重复调用线程的应用程序。在该线程中,我们必须解析XML,并且必须从该xml获取更新的数据。现在请指导我如何反复调用该线程?如果我的线程处于工作状态并且我的代码再次调用它,那么我认为它将会崩溃。

2 个答案:

答案 0 :(得分:1)

将代码分成新方法

-(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];

答案 1 :(得分:0)

要重复调用任何代码,您必须使用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]];