5

[NSOperationQueue operations] के माध्यम से, तेजी से गणना के माध्यम से, गणना करना सुरक्षित है? इसलिए जैसा:क्या यह [NSOperationQueue ऑपरेशंस] के माध्यम से गणना करना सुरक्षित है?

for (NSOperation *op in [operationQueue operations]) { 
    // Do something with op 
} 

आपरेशन के बाद से अतुल्यकालिक और एक अन्य धागे पर निष्पादित कर रहे हैं, operations किसी भी समय बदल सकता है (मुख्य थ्रेड के निष्पादन के दौरान भी शामिल है)। क्या तेजी से गणना इस के खिलाफ सुरक्षा करती है, या मुझे copy (और autorelease) इसके बजाय ऑपरेशन सरणी चाहिए?

उत्तर

11

यह केवल un सुरक्षित है यदि कतार आपके द्वारा गणना किए जाने पर सरणी को उत्परिवर्तित करता है।

हालांकि:

क़तार में संचालन युक्त एक नई सरणी देता है।

शब्द 'नई' there में मुझे पता चलता है कि आप के लिए कतार कॉपी और autorelease करेंगे, तो आप सुरक्षित रूप से सरणी के माध्यम से गणना कर सकते हैं।

+0

+1, दस्तावेज़ों से अच्छी पकड़ –

+0

दरअसल, बहुत अच्छी पकड़। धन्यवाद पीटर। –

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