2013-04-09 10 views
6

मैं अपने कार्यस्थल में आरएक्स लाने के बारे में सोच रहा हूं, लेकिन जितना अधिक मैं इसके बारे में अधिक सीखता हूं, मुझे लगता है कि यह वास्तव में आपको लाभ नहीं देता है।आरएक्स का उपयोग कहाँ किया जाना चाहिए?

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

लेकिन इसके बारे में पढ़ना और कोशिश कर रहा हूं मुझे संदेश पास करने के लिए ConcurrentQueues के साथ नियमित पुराने धागे का उपयोग करने पर अधिक लाभ नहीं दिख रहा है। आरएक्स मुझे क्या फायदे देता है? यह हमेशा कहा जाता है कि भले ही .NET 4.5 ने बहुत सारे आरएक्स अप्रचलित (हालांकि एसिंक और डेटाफ्लो) बनाया है, फिर भी ईवेंट स्ट्रीम को संभालने के लिए यह अभी भी अच्छा है। घटना के मामले में कौन से मामले मौजूद हैं और मैं उन्हें कैसे पहचानूं?

+0

आप आरएक्स woth की नेटफ्लिक्स के उपयोग मिल सकती है ऐसा लगता है कि ऐसा लगता है कि उनके लिए अच्छा काम किया है https://blogs.msdn.com/b/interoperability/archive/2013/02/05/netflix-solving-big-problems-with-reactive-extensions-rx.aspx – Wilka

+0

अंगूठे के एक (बहुत मोटे) नियम के रूप में, यदि आप एकल मूल्यों से निपट रहे हैं, तो टीपीएल/कार्य एपीआई का उपयोग करें; यदि आप "घटनाओं" के अनुक्रमों से निपट रहे हैं (सामान्य "कुछ", न केवल .NET घटनाओं), आरएक्स का उपयोग करें। डेटाफ्लो मैं कम परिचित हूं, मुझे इसके बारे में सोचना होगा। – JerKimball

उत्तर

4

यदि आपको कुछ कार्यों को समानांतर करने की आवश्यकता है, तो टीपीएल का उपयोग करें।

आप अतुल्यकालिक कार्रवाई करने की जरूरत है, Task & async/await का उपयोग करें।

यदि आपको घटनाओं की धाराओं को प्राप्त करने, फ़िल्टर करने और संयोजित करने की आवश्यकता है, तो आरएक्स का उपयोग करें। ध्यान दें कि आरएक्स अनिवार्य रूप से एसिंक्रोनस नहीं है - यह ईवेंट स्ट्रीम से निपटने के लिए एक मॉडल है, जिस तरह से LINQ संग्रह से निपटने के लिए एक मॉडल है।

आपका उपयोग केस पहले विकल्प की तरह लगता है।

1

वहाँ इतने पर इसी तरह के सवाल के बहुत सारे है ....

आरएक्स सभी अतुल्यकालिक संचालन के बारे में गणितीय आधारित रचना है। टीपीएल और "नियमित पुराने धागे" गैर-रचनात्मक हैं। इससे पहले कि आप यह देख सकें कि रचना वास्तव में आपको कहां लाभ देती है, आपको गैर-तुच्छ उदाहरण देखेंगे।

आरएक्स से परिचय के इस पृष्ठ पर एक नज़र (और यह के बाकी) ले लो, और मुझे यकीन है कि आप आरएक्स के लिए कारणों grok करना शुरू करेंगे हूँ: http://introtorx.com/Content/v1.0.10621.0/01_WhyRx.html#WhyRx

+0

अच्छा लिंक, पढ़ने के लायक अगर आप आरएक्स के "उद्देश्य" के बारे में सुनिश्चित नहीं हैं – AlexFoxGill

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