5

मैं अपने आवेदन में ब्लॉक के साथ कई असीमित निष्पादन करता हूं।उन सभी धागे को कैसे मारें जिन्हें वे मुख्य धागे नहीं हैं?

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

तो क्या सभी ब्लॉक के निष्पादन को रोकना संभव है? या अन्य शब्दों में, उन सभी धागे को मार दें जिन्हें वे मुख्य धागे नहीं हैं?

पीएस: मैंने NSOperationQueue के अंदर ब्लॉक निष्पादित करने का प्रयास किया, लेकिन मेरा पहला ऑपरेशन अच्छा समय पर शुरू नहीं होता है जबकि अनुवर्ती करता है।

उत्तर

4

यदि आपको संचालन रद्द करने के लिए धागे को मारने की आवश्यकता है, तो आप शायद इसे गलत कर रहे हैं। NSOperationQueue या इसी तरह के समाधान (जैसे कि आपके ब्लॉक में रद्दीकरण तर्क लागू करना) आईएमएचओ जाने का सही तरीका है। यदि आपको ऑपरेशन कतार के साथ कुछ समस्याएं हैं, तो इसे हल करने का प्रयास करें, खराब बनाकर समस्या से बचें।

+0

मेरा दृश्य चित्र प्रदर्शित करता है, और मैं अपने थंबनेल और असीमित रूप से लोड करके शुरू करता हूं, मैं असली तस्वीर चार्ज करता हूं और जैसे ही इसे लोड किया जाता है, यह थंबनेल की बजाय प्रदर्शित होता है। लेकिन यदि उपयोगकर्ता के पास एक भारी तस्वीर है जो पृष्ठभूमि में लोड होती है और यदि वह अगली तस्वीर पर स्वाइप करता है, तो पिछली भारी तस्वीर पृष्ठभूमि में लगातार लोड हो रही है, और यदि नई तस्वीर थोड़ी सी है, तो भारी तस्वीर लोड होने के बाद समाप्त होता है, और यह दृश्य पर नई तस्वीर का अधिग्रहण करता है। तो, मेरे कोड में, जब उपयोगकर्ता अगली तस्वीर पर स्वाइप करता है तो मैंने सभी पृष्ठभूमि थ्रेड को रोकने की कोशिश की। यह मेरी समस्या है। –

+0

यह एक क्लासिक उपयोग केस है जिसे किसी भी थ्रेड को मारने की आवश्यकता नहीं है। मेरा सुझाव है कि आप छवि लोडिंग को रद्द करने योग्य 'NSOperation' के रूप में कार्यान्वित करें और छवि लोड होने पर छवि लोडिंग रद्द करें। – zoul

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