वे एक समान रूप से समान कार्य करने लगते हैं: एक नया धागा लॉन्च करना जो उस चयनकर्ता को जल्दी और आसानी से करता है। लेकिन क्या कोई अंतर है? शायद स्मृति प्रबंधन के संबंध में?+ [NSThread detachNewThreadSelector: toTarget: withObject:] और - [NSObject performSelectorInBackground: withObject:] के बीच क्या अंतर है?
उत्तर
दोनों समान हैं।
आईओएस और मैक ओएस एक्स v10.5 और बाद में, सभी ऑब्जेक्ट्स में एक नया धागा पैदा करने और उनके तरीकों को निष्पादित करने के लिए इसका उपयोग करने की क्षमता है। PerformSelectorInBackground: withObject: विधि एक नया पृथक धागा बनाता है और निर्दिष्ट थ्रेड के लिए प्रविष्टि बिंदु के रूप में निर्दिष्ट विधि का उपयोग करता है। उदाहरण के लिए, यदि आप किसी वस्तु है (चर myObj द्वारा प्रतिनिधित्व) और उस वस्तु एक विधि DoSomething कहा जाता है कि आप एक पृष्ठभूमि सूत्र में चलाना चाहते हैं नहीं है, तो आपको निम्न कोड कि ऐसा करने के लिए इस्तेमाल कर सकते हैं कर सकते हैं:
[myObj performSelectorInBackground:@selector(doSomething) withObject:nil];
इस विधि को कॉल करने का प्रभाव वही है जैसा कि आपने डिटेच न्यू थ्रेड सिलेक्टर कहा है: लक्ष्य: withObject: वर्तमान ऑब्जेक्ट के साथ NSThread की विधि, चयनकर्ता, और पैरामीटर ऑब्जेक्ट पैरामीटर के रूप में। नया थ्रेड तुरंत डिफ़ॉल्ट कॉन्फ़िगरेशन का उपयोग करके उत्पन्न होता है और चलना शुरू होता है। चयनकर्ता के अंदर, आपको थ्रेड को कॉन्फ़िगर करना होगा जैसे आप कोई थ्रेड करेंगे। उदाहरण के लिए, आपको एक ऑटोरेलीज पूल सेट अप करना होगा (यदि आप कचरा संग्रहण का उपयोग नहीं कर रहे थे) और थ्रेड के रन लूप को कॉन्फ़िगर करें यदि आपने इसका उपयोग करने की योजना बनाई है। नए धागे को कॉन्फ़िगर करने के तरीके के बारे में जानकारी के लिए
मुझे लगता है कि वे समान हैं, - (void)performSelectorInBackground:(SEL)aSelector withObject:(id)arg;
NSObject (NSThreadPerformAdditions)
श्रेणी में NSThread.h में परिभाषित किया गया है। यह कुछ भी निर्णायक नहीं है, लेकिन यह उस दिशा में सबूत है।
मैंने अभी एक परीक्षण किया है, न ही कोई आपके लिए एक ऑटोरेलीज पूल सेट करता है। –
- 1. [NSThread detachNewThreadSelector:] और -performSelectorInBackground
- 2. प्रदर्शन चयनकर्ता: withObject: afterDelay: scrollViewDidZoom
- 3. आईफोन - प्रदर्शन चयनकर्ता: withObject: afterDelay: 'प्रोटोकॉल में नहीं मिला है? '-performSelector: withObject: afterDelay:'
- 4. रन लूप के लिए चयनकर्ता को एन्क्यू करें - [NSObject प्रदर्शन चयनकर्ता: withObject: afterDelay:] जाने का तरीका?
- 5. performSelectorOnMainThread का ब्लॉक संस्करण: withObject: waitUntilDone:
- 6. क्या मुझे प्रदर्शन चयनकर्ताओं के साथ देरी चयनकर्ताओं की एक सूची मिल सकती है: withObject: afterDelay :?
- 7. UIButton प्राप्त करने के लिए टैप किया गया [द्वितीय पृष्ठ प्रदर्शन चयनकर्ता: withObject: withObject:]: संदेश को हटाए गए संदेश
- 8. आईफोन: प्रदर्शन चयनकर्ता: withObject: afterDelay: पृष्ठभूमि धागे के साथ काम नहीं करता है?
- 9. प्रदर्शन करने के लिए संरचना पास करें चयनकर्ता: withObject: बाद के बाद:
- 10. एक चर "आईडी" और "NSObject *" घोषित करने के बीच क्या अंतर है?
- 11. एनएसटीएचड मुद्दे पर दो तर्कों के साथ चयनकर्ता चयनकर्ता
- 12. performSelectorInBackground,
- 13. मेमोरी प्रबंधन और performSelectorInBackground:
- 14. # {} $ {} और% {} के बीच क्या अंतर है?
- 15. [अपरिभाषित] और [,] के बीच क्या अंतर है?
- 16. $ और $$ के बीच क्या अंतर है?
- 17. के बीच क्या अंतर है:। और: आर !?
- 18. भिन्नता और '-' के बीच क्या अंतर है?
- 19. "$^एन" और "$ +" के बीच क्या अंतर है?
- 20. NSThread और UIViewController बातचीत
- 21. के बीच क्या अंतर है?
- 22. अंतर और कहां के बीच क्या अंतर है?
- 23. मैं पैरामीटर के रूप में @ चयनकर्ता कैसे पास करूं?
- 24. performSelector उपयोग कैसे करें: withObject: afterDelay: कई तर्क के साथ एक विधि पर
- 25. प्रदर्शन चयनकर्ता का उपयोग करना: withObject: afterDelay: गैर-ऑब्जेक्ट पैरामीटर के साथ
- 26. file_get_contents और fread बीच क्या अंतर है
- 27. क्या बीच का अंतर है :: और ::: स्काला
- 28. "। +" और "। +?" के बीच अंतर
- 29. $ {} और # {} के बीच अंतर क्या हैं?
- 30. PHP के बीच क्या अंतर है और इसमें शामिल है?
अच्छा प्रश्न। मैं यह कहने जा रहा था कि 'perfomSelectorInBackground' पूल से थ्रेड का उपयोग कर सकता है (' libdispatch' के माध्यम से), लेकिन दस्तावेज़ स्पष्ट रूप से कहते हैं कि यह एक नया धागा बनाएगा। तो हाँ, ऐसा लगता है कि 'NSThread' विधि ... –