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