तो मेरे पास यह कोड है:dispatch_async कहीं कहीं अंतराल है, जहां नहीं मिल सकता है। क्या एनएसएलओजी समस्या है?
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0), ^{
//Bunch of code
NSLog(@"Test");
});
जो चलाता है और तुरंत nslog देता है। लेकिन कोड के परिणाम केवल कुछ सेकंड में देरी स्क्रीन पर दिखाई देते हैं। क्या एनएसएलओएल का उपयोग यहां किया जा रहा है, जिसका मतलब है कि इसे आमतौर पर पहले कहा जाता है, जब यह वास्तव में नहीं होता है तो यह तेज़ी से प्रतीत होता है। मैं उलझन में हूं कि यह देरी कहां से आ रही है, क्योंकि एनएसएलओजी तब चलने वाले सभी कोड के अंत में सही है।
इसके अलावा, मेरी समस्या का एक और समाधान, क्या एनएसएलओजी प्राप्त करना संभव है जब हर विधि को कहा जाता है (एनएसजेम्बीज की तरह थोड़ा मुझे लगता है) तो मैं सुनिश्चित कर सकता हूं कि कुछ ऐसा नहीं है जिसे मैंने नहीं देखा मेरे ऐप के मीठे प्रतिक्रिया समय को ऊपर?
आप अपने लॉग को तत्काल क्यों दिखाना चाहते हैं? आपके "कोड का गुच्छा" चलाने में कुछ सेकंड लग सकते हैं, उसमें लॉग में देरी हो सकती है, क्योंकि यह आपके शेष ब्लॉक के कोड के बाद ही निष्पादित होगा। –
यह मुझे भ्रमित करता है। यह कोड के हर बिट के बाद है, और फिर भी स्क्रीन पर परिणाम दिखाने के लिए कुछ सेकंड लगते समय तुरंत दिखाई देता है। – Andrew
ठीक है, तो आप कह रहे हैं कि एनएसएलओजी कथन का कंसोल पर तुरंत अपना टेक्स्ट दिखाया गया है, लेकिन आपके "कोड का गुच्छा" इसमें अन्य यूआई अपडेट हैं जो तुरंत स्क्रीन पर प्रभावी नहीं होते हैं?यदि ऐसा है, तो वे किस प्रकार के यूआई अपडेट हैं? क्या वे मुख्य धागे पर असीमित रूप से प्रेषित हैं? क्या इस प्रक्रिया को प्रेषित करने के बाद मुख्य धागे पर एक तंग पाश में पकड़ा जा सकता है, संभावित रूप से यूआई अपडेट को रोक रहा है? –