2013-01-19 50 views
5

हम चलाने के लिए विधि निर्धारित करने के लिए scheduleUpdate या schedule:@selecotr(xxx) का उपयोग कर सकते हैं।क्या cocos2d निर्धारित विधियां किसी अन्य धागे में चलती हैं?

क्या निर्धारित विधि किसी अन्य धागे में चलती है?

उत्तर

9

नहीं। Cocos2d ऑब्जेक्ट्स थ्रेड-सुरक्षित नहीं हैं और मुख्य धागे पर चलने की उम्मीद है। टाइमर मुख्य रन लूप पर निर्धारित है। तो किसी भी परिस्थिति में मुख्य धागे को अवरुद्ध न करें।

1

आप [self performSelectorInBackground: ...] और इसी तरह के NSObject विधियों का उपयोग कर सकते हैं।

सामान्य चेतावनी लागू होती है। कोकोस 2 डी में लगभग हर संपत्ति को "nonatomic" चिह्नित किया जाता है और इसलिए थ्रेड-सुरक्षित नहीं होता है, इसलिए आप सामान्य मल्टीथ्रेडिंग समस्याओं में भाग ले सकते हैं जबतक कि आप वास्तव में नहीं जानते कि आप मल्टीथ्रेडिंग क्या कर रहे हैं, और आप इसे क्यों कर रहे हैं।

+1

परमाणुता थ्रेड सुरक्षा के बराबर नहीं है! एक संपत्ति को परमाणु के रूप में चिह्नित करने से यह गैर-थैलिक के रूप में चिह्नित करने से कहीं अधिक धागा सुरक्षित नहीं होता है, यह केवल गारंटी देता है कि पढ़ता है और लिखता परमाणु किया जाता है! – JustSid