द्वारा थ्रेड मारा जा रहा है मैं वर्तमान में एक ऐप प्रोग्रामिंग कर रहा हूं जो मूवी क्लिप से फ़्रेम निकालता है। मैंने इसे डिज़ाइन किया ताकि एप्लिकेशन को ठंड से रोकने से रोकने के लिए एक अलग थ्रेड पर निष्कर्षण किया जाएगा। निष्कर्षण प्रक्रिया स्वयं बहुत सारे संसाधन ले रही है, लेकिन सिम्युलेटर में उपयोग किए जाने पर ठीक काम करती है। हालांकि, आईपैड के लिए इसे बनाने के दौरान समस्याएं हैं। जब मैं एक और कार्रवाई करता हूं (जब मैं फ्रेम निकालने के दौरान अपने एवी प्लेयर को खेलने के लिए कह रहा हूं), थ्रेड अप्रत्याशित रूप से काम करना बंद कर देता है, और मेरा मानना है कि यह मारे जा रहा है।ओएस
मुझे लगता है कि यह बहुत सारे संसाधनों का उपयोग कर रहा है, लेकिन पूरी तरह से सुनिश्चित नहीं है।
यहां मेरे प्रश्न हैं: 1. मैं कैसे बता सकता हूं कि मेरा धागा क्यों रोक रहा है? 2. यदि यह वास्तव में प्रसंस्करण से अधिक है तो मुझे क्या करना चाहिए? मुझे वास्तव में लागू करने के लिए इस कार्रवाई की जरूरत है।
Heres कुछ कोड im का उपयोग कर: धागा बनाने के लिए:
[NSThread detachNewThreadSelector:@selector(startReading) toTarget:self withObject:nil];
मैं किसी भी जानकारी की आवश्यकता, धन्यवाद इतना पोस्ट करेंगे!
अद्यतन मैं अब जीसीडी का उपयोग कर रहा हूं और यह मेरे लिए धागे को पॉप्युलेट करता है। हालांकि ओएस अभी भी धागे को मारता है।
मुझे पता है कि यह वास्तव में कब हो रहा है। जब मैं अपना [एवीप्लेयर प्ले] बताता हूं; यह धागे को मारता है।
यह समस्या केवल वास्तविक आईपैड में और सिम्युलेटर
यदि आपको पूछना है, तो प्रेषण कतार (जीसीडी) या ऑपरेशन कतार (NSOperationQueue) जैसे उच्च स्तर के अमूर्तता का उपयोग करने का प्रयास करें।देखें [थ्रेड से दूर ले जाएं] (http://developer.apple.com/library/mac/#documentation/General/Conceptual/ConcurrencyProgrammingGuide/ConcurrencyandAplicationDesign/ConcurrencyandApplicationDesign.html#//apple_ref/doc/uid/TP40008091-CH100- SW8) एक विस्तारित चर्चा के लिए, या एक [जीसीडी] (http://stackoverflow.com/questions/7941860/#7941898) या [NSOperationQueue] (http://stackoverflow.com/questions/830218/) उदाहरण के लिए देखें। यह बहुत उपयोगी चीजें है। – Jano
आपके ऐप को क्रैश करता है? यदि ऐसा है तो दुर्घटना रिपोर्ट क्या कहती है? क्या आप सुनिश्चित हैं कि AVPlayer थ्रेडसेफ है? क्योंकि यदि आप [AVplayer play] को कॉल कर रहे हैं और पृष्ठभूमि थ्रेड में एक ही समय में इसे एक्सेस कर रहे हैं, तो यह समस्या हो सकती है। – JeanLuc
क्या आपका निष्कर्षण थ्रेड पृष्ठभूमि धागे के रूप में चल रहा है? मैं उद्देश्य-सी सीख रहा हूं, लेकिन यदि आप पृष्ठभूमि थ्रेड के रूप में इसे चलाने में सक्षम हैं तो ओएस द्वारा मारने में मदद नहीं कर सकता है। –