2008-09-11 13 views
47

मैंने कुछ समय पहले Win32 कोड में आईपीसी का उपयोग किया है। [गंभीर वर्ग, घटनाएं & सेमफोर]सी # में आईपीसी तंत्र - उपयोग और सर्वोत्तम अभ्यास

.NET पर्यावरण में दृश्य कैसा है? क्या कोई उपलब्ध ट्यूटोरियल सभी उपलब्ध विकल्पों को समझाता है और कब उपयोग करना है और क्यों?

+1

आपको क्या करने की आवश्यकता है? यदि आपको कुछ बाहरी संसाधनों तक पहुंच को सिंक्रनाइज़ करने की आवश्यकता है, तो आप क्रॉस-प्रोसेस सिंक्रनाइज़ेशन को लागू करने के लिए एक म्यूटेक्स का उपयोग कर सकते हैं। –

+4

+1। धन्यवाद भगवान। यह "सर्वोत्तम प्रथाओं" स्वाद के साथ प्रश्नों का पहला उदाहरण है जिसे गैर-रचनात्मक/ऑफ-विषय [जिसे मैंने कभी देखा है] के रूप में चिह्नित नहीं किया गया है !! –

उत्तर

26

आईपीसी में हाल ही में माइक्रोसॉफ्ट की सामग्री Windows Communication Foundation है। दरअसल निचले स्तर (टीसीपी, अपडेट, नामित पाइप इत्यादि) में कुछ नया नहीं है लेकिन डब्ल्यूसीएफ आईपीसी विकास को काफी सरल बनाता है।

उपयोगी संसाधन:

और निश्चित रूप से पर MSDN on WCF

+5

अरे पहले लिंक में वीडियो मर चुका है! –

3

वहाँ भी है नेट दूरस्थ, जो मैं काफी शांत पाया, लेकिन मुझे लगता है कि वे अब इसे रोक रहे हैं कि उनके पास डब्ल्यूसीएफ है।

+0

क्या माइक्रोसॉफ्ट ने वास्तव में कभी कहा है? – Mark

+0

कोई विचार नहीं। यह सिर्फ मेरा अनुमान है। – ibz

+9

उनके पास है: "यह विषय एक विरासत तकनीक के लिए विशिष्ट है जो मौजूदा अनुप्रयोगों के साथ पिछड़े संगतता के लिए बनाए रखा गया है और नए विकास के लिए अनुशंसित नहीं है।वितरित अनुप्रयोगों को अब विंडोज कम्युनिकेशन फाउंडेशन (डब्ल्यूसीएफ) का उपयोग करके विकसित किया जाना चाहिए। "Http://msdn.microsoft.com/en-us/library/kwdt6w2k.aspx – Lucas

10

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

+3

से हालांकि यह सितंबर 2008 में मामला हो सकता है (जब यह टिप्पणी की गई थी), यह 2011 है और मोनो पर डब्ल्यूसीएफ अब काफी परिपक्व है। [मोनो डब्ल्यूसीएफ विकास पृष्ठ] (http://www.mono-project.com/WCF) देखें और अपने लिए जज। –

3

ऐसा लगता है जैसे आप संचार के बजाय सिंक्रनाइज़ेशन तकनीकों में रूचि रखते हैं। यदि ऐसा है, तो आप here, या शायद यह concise overview शुरू करना चाहेंगे।

10

अलावा स्पष्ट (WCF) से, वहाँ एक ZeroMQ सी #/CLR जो काफी अच्छा है के लिए बाध्यकारी है:

http://www.zeromq.org/bindings:clr

करता है संदेश आधारित भारतीय दंड संहिता, पब/उप और भी बहुत कुछ के साथ विभिन्न अन्य रणनीतियों डब्ल्यूसीएफ की तुलना में कम कोड और कॉन्फ़िगरेशन।

यह कम से कम किसी भी चीज़ की तुलना में तीव्रता का क्रम भी है और यदि आपको कम विलंबता कॉम की आवश्यकता होती है तो कम विलंबता होती है।

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

+3

** "द्वारा साझा साझा करके संवाद करने के बजाए संवाद करना "** इसे समवर्ती प्रोग्रामिंग करने वाले किसी भी व्यक्ति द्वारा हर दिन पढ़ा जाना चाहिए। –

+1

इसका क्या अर्थ है? – Believe2014

+0

मैं इसका मतलब यह मानता हूं कि संसाधनों को साझा करने और प्रत्येक कार्यक्रम को इच्छानुसार दावा करने का प्रयास करने के बजाय , आपके पास प्रोग्राम एक दूसरे से सीधे आईपीसी के साथ बात करनी चाहिए। पहले परिदृश्य में, आपके प्रोग्राम साझा संसाधन को लॉक करके "संवाद" करते हैं। दूसरे में, वे साझा संसाधन के उपयोग को समन्वयित करने के लिए कुछ प्रोटोकॉल के माध्यम से संवाद करते हैं। – jmathew

5

यदि आप मशीन डोमेन पर नेटवर्क के माध्यम से संचार नहीं करते हैं, तो मैं मेमोरी मैप किए गए फ़ाइलों का उपयोग करने की सलाह दूंगा। निम्नलिखित लिंक देखें।

http://techmikael.blogspot.com/2010/02/blazing-fast-ipc-in-net-4-wcf-vs.html

+0

.NET स्थानीय मशीन एपीआई की एक सूची: http://weblogs.asp.net/ricardoperes/local-machine-interprocess-communication-with-net –

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