Does performSelectorInBackground
为每个调用生成一个新线程,还是为所有调用(可能排队)共享一个线程(不是主线程)?
每次调用都会创建一个新线程-performSelectorInBackground:withObject:
来自线程编程指南 http://developer.apple.com/library/ios/#documentation/cocoa/Conceptual/Multithreading/CreatingThreads/CreatingThreads.html#//apple_ref/doc/uid/10000057i-CH15-SW13
使用 NSObject 生成线程
在 iOS 和 Mac OS X v10.5 及更高版本中,所有对象都能够生成新线程并使用它来执行其方法之一。 PerformSelectorInBackground:withObject: 方法创建一个新的分离线程,并使用指定的方法作为新线程的入口点。例如,如果您有某个对象(由变量 myObj 表示),并且该对象有一个名为 doSomething 的方法,您希望在后台线程中运行该方法,则可以使用以下代码来执行此操作:
[myObj performSelectorInBackground:@selector(doSomething) withObject:nil];
调用该方法的效果与以当前对象、选择器和参数对象为参数调用 NSThread 的 detachNewThreadSelector:toTarget:withObject: 方法的效果相同。使用默认配置立即生成新线程并开始运行。在选择器内部,您必须像配置任何线程一样配置线程。例如,您需要设置一个自动释放池(如果您没有使用垃圾收集)并配置线程的运行循环(如果您计划使用它)。有关如何配置新线程的信息,请参阅“配置线程属性”。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)