नहीं दिख रहा है मेरे पास कुछ भारी कोड है जो लगभग 0.2 सेकंड तक चलता है।गतिविधि संकेतक
मैंने इस तरह की गतिविधि संकेतक स्थापित किया है; हालांकि, यह दिखाई नहीं देता है, लेकिन कोड पूरी होने तक पूरी स्क्रीन लगभग 0.2 सेकंड के लिए फ्रीज होती है।
func heavyWork() {
self.actvityIndicator.startAnimating()
...
// heavy loop codes here
...
self.activityIndicator.stopAnimating()
}
क्या यह गतिविधि संकेतक का उपयोग करने का सही तरीका है?
जब मैं बाहर टिप्पणी
// self.activityIndicator.stopAnimating()
गतिविधि सूचक पता चलता है और वहाँ रहता है - कोड सही स्थापित कर रहे हैं।
लेकिन यूआई सही समय पर अपडेट नहीं किया जा रहा है।
जैसा कि मैंने कहा, स्क्रीन भारी कोड होने तक गतिविधि संकेतक को दिखाए बिना फ्रीज करता है।
अपने 'भारी पाश code' एक पृष्ठभूमि धागा पर चल रहा है? भारी लूप कोड यूआई को गतिविधि संकेतक प्रदर्शित करने से रोक देगा। इसके अलावा यदि आप पृष्ठभूमि थ्रेड पर 'हेवीवॉर्क' को कॉल कर रहे हैं तो 'UI' अपडेट नहीं होना चाहिए क्योंकि यह मुख्य थ्रेड पर नहीं है। – sbarow
यदि आप पृष्ठभूमि थ्रेड पर हैं, तो आप यूआई पर कुछ भी संशोधित नहीं कर सकते हैं; यदि आप मुख्य धागे पर हैं तो भारी काम करने के लिए यह सबसे अच्छा नहीं है। – holex