آليات IPC في C# - الاستخدام وأفضل الممارسات

StackOverflow https://stackoverflow.com/questions/56121

  •  09-06-2019
  •  | 
  •  

سؤال

لقد استخدمت IPC في كود win32 منذ فترة.[الأقسام والأحداث والإشارات الهامة]

كيف هو المشهد في بيئة .NET؟هل هناك أي برنامج تعليمي يشرح جميع الخيارات المتاحة ومتى يتم استخدامها ولماذا؟

هل كانت مفيدة؟

المحلول

أحدث عناصر Microsoft في IPC هي مؤسسة ويندوز للاتصالات.في الواقع لا يوجد شيء جديد في المستوى الأدنى (tcp، upd، الأنابيب المسماة وما إلى ذلك) لكن WCF يبسط تطوير IPC إلى حد كبير.

مصدر مفيد:

وبالطبع MSDN على WCF

نصائح أخرى

وبصرف النظر عن ما هو واضح (WCF)، هناك رابط ZeroMQ لـ C#/CLR وهو أمر جيد جدًا:

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

هل IPC و pub/sub الموجهة نحو الرسائل والعديد من الاستراتيجيات الأخرى ذات كود وتكوين أقل بكثير من WCF.

إنه أيضًا على الأقل أسرع من أي شيء آخر وله زمن وصول أقل إذا كنت تحتاج إلى اتصالات ذات زمن انتقال منخفض.

فيما يتعلق بالإشارات والأقفال وكائنات المزامنة وما إلى ذلك.إذا كنت تشارك من خلال التواصل بدلاً من التواصل من خلال المشاركة، فسيكون لديك عبء أقل من المتاعب مقارنة بالنموذج التقليدي.

أميل إلى استخدام الأنابيب المسماة أو مآخذ Unix (اعتمادًا على ما إذا كنت أستهدف MS.NET أو Mono - لدي فئة تلخصها بعيدًا) نظرًا لأنها سهلة الاستخدام ومحمولة وتسمح لي بالتفاعل بسهولة مع التعليمات البرمجية غير المُدارة .ومع ذلك، إذا كنت تتعامل فقط مع تعليمات برمجية مُدارة، فانتقل إلى WCF أو التحكم عن بعد - والأخير إذا كنت بحاجة إلى دعم Mono، نظرًا لأن دعم WCF الخاص بهم ليس موجودًا بعد.

أوصي باستخدام Memory Mapped Files إذا كنت بحاجة إلى استخدام مجال الجهاز وليس الاتصال عبر الشبكة.انظر الرابط التالي.

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

يوجد أيضًا .NET Remoting، والذي وجدته رائعًا جدًا، ولكن أعتقد أنهم أصبحوا قديمًا بعد أن أصبح لديهم WCF.

يبدو أنك مهتم بتقنيات المزامنة بدلاً من التواصل.إذا كان الأمر كذلك، قد ترغب في البدء هنا, ، أو ربما هذا أكثر نظرة عامة موجزة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top