2008-10-13 15 views
6

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

हालांकि, जब भी आप ट्विक करना चाहते हैं तो डिस्पैचर थ्रेड पर एक संदर्भ स्विच की आवश्यकता होती है, यह थोड़ा सा लगता है। क्या कोई उन्हें इस्तेमाल करने के लिए सर्वोत्तम प्रथाओं को जानता है? क्या यह व्यवसाय परत में एक संदेश वस्तु के रूप में एक आईसीओलेक्शन को पॉप्युलेट करना है, फिर यूआई परत में ऑब्जर्जेबल कोलेक्शन बनाएं? फिर यूआई पर संग्रह के अपडेट कैसे प्रबंधित करते हैं?

उत्तर

2

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

+0

यह एक संदर्भ स्विच नहीं है जब तक कि यह एक सिंक्रोनस ऑपरेशन नहीं है – Amsakanna

+0

ओएस थ्रेड से थ्रेड तक चलता है, यह हमेशा एक संदर्भ स्विच होता है, इसका मतलब क्या है "जब तक कि यह एक सिंक्रोनस ऑपरेशन न हो"? –

1

आप WPF (जैसे कि विंडोज फॉर्म में) में भी पुराने पुराने BackgroundWorker का उपयोग कर सकते हैं। यह डब्ल्यूपीएफ के थ्रेडिंग मॉडल को अपनाएगा और एक अच्छा अमूर्त भी प्रदान करेगा।

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