6

क्या कोई तरीका है कि मैं इस और इसी तरह के तरीकों से संबंधित चयनकर्ता के बजाय ब्लॉक निष्पादित कर सकता हूं?performSelectorOnMainThread का ब्लॉक संस्करण: withObject: waitUntilDone:

मेरे पास पर्यवेक्षकों हैं जो मुख्य धागे पर उत्पन्न नहीं होने वाली घटनाएं प्राप्त कर सकते हैं। मैं मुख्य थ्रेड पर कार्रवाई करना चाहता हूं यदि यह मुख्य रूप से यूआई उन्मुख है। अभी, मुझे ऐसा करने के लिए दो विधियों को लिखने की जरूरत है, जहां एक घटना पर्यवेक्षक है, और दूसरा वह कोड है जिसे मुख्य धागे पर निष्पादित करने की आवश्यकता है।

मैं यह सब एक विधि में encapsulate करना चाहता हूं, अगर मैं कर सकता था। यदि आप waitUntilDone:NO पर योजना बना रहे थे

dispatch_sync(dispatch_get_main_queue(), ^{ 
    // Do stuff here 
}); 

या dispatch_async:

उत्तर

11

ब्लॉक-सहायक multhreading कार्यों के लिए बेहतर तकनीक ग्रैंड सेंट्रल डिस्पैच कहा जाता है। आप Wikipedia पर कुछ नमूना कोड प्राप्त कर सकते हैं और Grand Central Dispatch (GCD) Reference

dispatch_async(backgroundQueue, ^{ 
     //background tasks 

     dispatch_async(dispatch_get_main_queue(), ^{ 
      //tasks on main thread 
     });  
}); 
+1

ऐसा लगता है कि ये दोनों [इस SO सवाल] के अनुसार समतुल्य नहीं हैं (http://stackoverflow.com/questions/9335434/whats-the-difference-between-performselectoronmainthread-and-dispatch-async-on-m)। इसके अलावा [यह] (http://stackoverflow.com/questions/19544207/how-to-avoid-coreanimation-warning-deleted-thread-with-uncommitted-catransactio) एक और यूआई-विशिष्ट उत्तर के लिए। – insys

13

GCD चाल करना चाहिए। मुख्य धागे पर चलने के लिए main queue is guaranteed, इसलिए यह यूआई संचालन के लिए सुरक्षित है।

+0

में मैं कसम खाता हूँ मैं इस से पहले उत्तर दिया है, लेकिन मैं नकली नहीं मिल रहा।/मुझे shrugs –

+0

त्वरित उत्तर के लिए धन्यवाद, जोश। यही वह जवाब है जिसे मैंने देखा है, जिसे मैं लागू करूंगा। चूंकि दोनों उत्तरों एक ही समय के साथ टैग किए जाते हैं, इसलिए मैं हरे रंग की जांच Fscheidl दे दूंगा, और आपको एक वोट दे दूंगा। मुझे आशा है कि आप 'दिमाग' नहीं करेंगे। – Jim

+2

खुशी मैं मदद कर सकता था। मुझे पता है कि मुझे क्या करना है उससे ज्यादा प्रतिनिधि मिल गया है, इसलिए नहीं, इससे कोई फर्क नहीं पड़ता, धन्यवाद। –

संबंधित मुद्दे