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