我有一些在计时器中运行的代码,但我想同时运行一些代码。
如何在目标c中运行线程?
我可以将当前代码放在方法中,只需启动线程并在每个线程中调用该方法吗?
答案 0 :(得分:4)
直接答案是肯定的:使用NSThread 你可以这样做:
[NSThread detachNewThreadSelector:@selector(myThreadMethod:) toTarget:self withObject:someOptions];
这将创建一个新的Thread并调用您在某个对象上定义的某个方法。一个常见的缺陷是,如果您不使用垃圾收集,则需要在线程中创建单独的NSAutoreleasePool。在上面的这种情况下,它可能看起来像这样:
- (void)myThreadMethod:(id)options
{
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
... // your method contents here
[pool release];
}
但是,正如其他人已经指出的那样,应该不再使用线程。它们被NSOperations,Blocks和GrandCentralDispatch取代。
答案 1 :(得分:2)
答案 2 :(得分:1)
您可以使用NSOperationQueue
。我不确定它适用于哪种版本的iOS。