पर पृष्ठभूमि धागे में चित्रण मेरे पास कुछ जटिल ड्राइंग तर्क के साथ एक दृश्य है (यह एक नक्शा दृश्य है जो जीआईएस डेटा से खींचता है)। मुख्य थ्रेड पर इस ड्राइंग को यूआई को लॉक करता है और ऐप को उत्तरदायी बनाता है। मैं ड्राइंग को पृष्ठभूमि थ्रेड में ले जाना चाहता हूं उदाहरण के लिए एनएसओपरेशन।आईओएस
इसकी संरचना करने का सबसे अच्छा तरीका क्या है?
मैं वर्तमान में एक बंद स्मृति CGContext को चित्रित कर रहा हूं और उसके बाद इसे एक CGImageRef में परिवर्तित करता हूं जिसे मैं मुख्य धागे पर देखने के लिए दृश्य में भेजता हूं। दुर्भाग्यवश यह बहुत सारी मेमोरी का उपयोग करता है और ऐसा लगता है कि जीपीयू त्वरण अब उपयोग नहीं किया जाता है क्योंकि यह काफी धीमा है। पृष्ठभूमि धागे से सीधे देखने के लिए कोई तरीका है? मुझे पता है कि UIKit मल्टी-थ्रेड सुरक्षित नहीं है लेकिन शायद मैं ड्राइंग कर रहा हूं, जबकि दृश्य को लॉक करने का कोई तरीका है?
क्या आपका मतलब कैलियर है? –
सं। CGLayer। http://developer.apple.com/library/mac/#documentation/GraphicsImaging/Reference/CGLayer/Reference/reference.html – MacGeek
तो मैं अब इस दृष्टिकोण को आजमा रहा हूं लेकिन यहां तक कि यदि मैं एनएसटीमर के साथ चलता हूं और केवल 50% उस समय (ड्राइंग चक्र के अधिकतम 0.1s के लिए 0.2s अंतराल पर चलाएं) ऐसा लगता है कि यह अभी भी सभी यूआई घटनाओं को अनदेखा कर रहा है। इसके लिए क्या कोई तरकीब है? –