मैं बस नीचे कोड की कोशिश की
dispatch_async (dispatch_get_main_queue (), ^ {[self TaskB];}); [आत्म प्रदर्शन चयनकर्तामुख्यथाथ्रेड: @ सिलेक्टर (टास्क ए) विद ऑब्जेक्ट: बिना प्रतीक्षा प्रतीक्षा: नहीं]; यह taskA
और taskb
एक एनएसएलॉग
निष्पादित कर रहा है और कुछ नहीं। अब यहां के रूप में taskB
पहले लिखित है लेकिन taskA
पहले क्रियान्वित करता है। यहां तक कि मैं अभी भी आदेश को बदलता हूं परफॉर्मेंसऑन माइनथीथ
पहले क्रियान्वित कर रहा हूं। और प्रत्येक मामले के लिए मेरा कंसोल दिखाता है
2015-03-17 16: 44: 35.157 टेस्ट प्रोजेक्ट [9346: 1 9 78 9] टास्क ए 2015-03-17 16: 44: 35.283 टेस्ट प्रोजेक्ट [9 346: 1 9 1 9 78 ] कार्य बी
क्या कोई मुझे यहाँ समझने के लिए मदद कर सकता है। और क्यों performSelectorOnMainThread
पहले क्रियान्वित करें?
प्रेषण_असिनक (dispatch_get_main_queue () , ^ {[स्वयं कार्य बी];}); इस कोड में आप dispatch_async
का उपयोग कर रहे हैं, जो कि कंपाइलर को नहीं रोकना को इसके अंदर लिखे गए कोड के लिए और निष्पादन को बताता है, तो कंपाइलर को performSelectorOnMainThread
निष्पादित करने के बाद और इसके बाद संकलक प्रेषण
के बारे में सोचता है। के बारे में और अधिक पढ़ें।
No comments:
Post a Comment