performSelectorInBackground
为每次调用产生一个新的线程,还是共享一个线程(这不是主线程)的所有调用(可能排队)?performSelectorInBackground是否为每次调用产生新的线程?
3
A
回答
11
一个新线程每次调用创建-performSelectorInBackground:withObject:
使用NSObject的生成一个线程
在iOS和Mac OS X的v10.5及其更高版本,所有对象都有能力产生一个新的线程并用它来执行他们的一个方法。 performSelectorInBackground:withObject:方法创建一个新的分离线程,并使用指定的方法作为新线程的入口点。例如,如果你有一些对象(由变量MyObj中表示)和对象有一个名为DoSomething的方法要在后台线程中运行,你可以可以使用下面的代码来做到这一点:
[myObj performSelectorInBackground:@selector(doSomething) withObject:nil];
调用此方法的效果与将当前对象,选择器和参数对象作为参数调用detachNewThreadSelector:toTarget:withObject:NSThread的方法相同。新线程立即使用默认配置生成并开始运行。在选择器内部,您必须像任何线程一样配置线程。例如,你需要设置一个自动释放池(如果你没有使用垃圾收集)并且配置线程的运行循环,如果你打算使用它的话。有关如何配置新线程的信息,请参阅“配置线程属性”。
相关问题
- 1. jmx是否为每个调用创建一个新线程?
- 2. 调用performSelectorInBackground:从后台线程
- 3. Python subprocess.call()为每个调用产生新进程
- 4. 由cudaMalloc产生的新线程行为?
- 5. performSelectorInBackground:在主线程
- 6. 每次调用async void方法时是否创建一个新线程?
- 7. 如何从performSelectorInBackground线程更新UITextView?
- 8. 如何用openmp产生一次线程
- 9. (iphone)取消performSelectorInBackground的线程
- 10. Qt新线程是否每次打勾创建?
- 11. NSOperation是否会产生一个新线程?
- 12. Python生成器每次调用产生相同的值
- 13. 是否有可能与新的生产线在线
- 14. 财产在每次被调用时更新其元素是否安全?
- 15. Python,是否适合一个线程产生另一个线程
- 16. 如何终止performSelectorInBackground:线程?
- 17. 做一个java函数调用产生新的线程执行?
- 18. Qt moveToThread()与我们每次使用时调用新线程
- 19. 主(UI)线程是否发生回调?
- 20. Spring是否真的为每个线程提供新的事务?
- 21. 线程是否可以调用线程?
- 22. 通过LINQ Select调用错误代码产生新线程?
- 23. 在等待新线程产生时调用thread.sleep()
- 24. 虽然不是新的生产线
- 25. 产生的线程是否自动作为用户的身份运行?
- 26. NSOperation不产生新的线程?
- 27. 每次调用时都会产生不同的结果
- 28. 多次产生ndb.Future是否安全?
- 29. Firebase生产是否准备好100%离线应用程序?
- 30. 创建线程每次的新实例,我想运行与否
官方文档通常非常有帮助。谢谢约拿。 – 2011-01-14 06:16:48