2010-11-23 8 views
7

मैंने बीबी एपीआई (5.0) देखा है और मुझे थ्रेड के बैच को क्रमशः निष्पादित करने का कोई तरीका नहीं मिल रहा है। मुझे पता है कि बीबी की लॉन्च होने वाली थ्रेड की संख्या पर एक सीमा है, इसलिए यदि मैं पर्याप्त चीजों के माध्यम से पर्याप्त क्लिक करता हूं तो मुझे 7 लॉन्च नहीं करना है, लेकिन मुझे थ्रेड पूल की तरह कुछ भी नहीं मिल रहा है।ब्लैकबेरी में कतार थ्रेड

क्या इसके लिए कोई आसान फिक्स है या क्या मुझे डेटा संरचना बनाना है?

+0

आप कई धागे क्यों चाहते हैं? यूआई को एक सिंगल थ्रेड लॉन्च करने के बारे में क्या है जो एक्स, वाई, जेड करता है? – seand

+0

क्योंकि प्रत्येक घटना अलग है। मैं उन्हें लॉन्च करना चाहता हूं ताकि यूआई को चीजों को पूरा करने के इंतजार पर अवरुद्ध नहीं किया जा रहा है। टाइमर दृष्टिकोण के लिए – Nicholas

उत्तर

10

यदि आप केवल एक थ्रेड पर कार्यों का एक गुच्छा निष्पादित करना चाहते हैं और क्रम महत्वपूर्ण नहीं है, तो आप Timer ऑब्जेक्ट (जिसका अपना धागा है) बना सकते हैं, फिर प्रत्येक कार्य को TimerTask के रूप में जोड़ें। यदि आप 0 या 1 की देरी के साथ इसे शेड्यूल करते हैं, तो यह अनिवार्य रूप से उस कार्य को जितनी जल्दी हो सके चलाएगा। और चूंकि टाइमर में केवल एक धागा होता है, यदि आप एक साथ कई कार्यों को शेड्यूल करते हैं, तो यह सुनिश्चित करेगा कि केवल एक ही समय में ही चलाएगा।

संयोग से, मैं इस साल ब्लैकबेरी डेवलपर सम्मेलन में एक आरआईएम इंजीनियर से बात कर रहा था और उन्होंने कहा कि ओएस 5.0 के रूप में अब धागे की संख्या के लिए सीमाएं नहीं हैं - इसलिए यह चिंता से कम और कम हो रहा है ।

+1

+1। –

+1

भले ही ओएस सीमा सीमाओं को ऊपर उठाए, फिर भी एक मोबाइल डिवाइस की तरह एक बाधित env पर एक महंगा संसाधन है। जब संभव हो तो आवश्यक थ्रेड की संख्या को कम करने के लिए हमेशा अच्छा अभ्यास होता है। – seand

+0

हैलो सब, मेरी एप्लिकेशन आवश्यकता है कि इसे प्रत्येक पृष्ठ में नेटवर्क तक पहुंचना है। मैं जो कर रहा हूं वह है कि मैं एक आंतरिक कक्षा बना रहा हूं जो प्रत्येक स्क्रीन के लिए थ्रेड को बढ़ाता है जो नेटवर्क कनेक्टिविटी की आवश्यकता होती है, क्या यह एक सही दृष्टिकोण है? किसी भी तरह की मदद की सराहना की जाती है। ए वाई। – ayachama