我有一些在计时器中运行的代码,但我希望其中一些代码同时运行。
线程在 Objective C 中是如何运行的?
我可以将当前代码放在一个方法中,然后启动线程并在每个线程中调用该方法吗?
最佳答案
直接的答案是肯定的:使用NSThread 你可以这样做:
[NSThread detachNewThreadSelector:@selector(myThreadMethod:) toTarget:self withObject:someOptions];
这将创建一个新线程并调用您在某个对象上定义的某些方法。一个常见的陷阱是,如果您不使用垃圾收集,则需要在线程中创建一个单独的 NSAutoreleasePool。在上面的例子中,它可能看起来像这样:
- (void)myThreadMethod:(id)options
{
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
... // your method contents here
[pool release];
}
但是,正如其他人已经指出的那样,不应再使用线程。它们被 NSOperations、Blocks 和 GrandCentralDispatch 所取代。
关于iphone - 如何在 Objective C 中运行多个线程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3430284/