簡體   English   中英

C# 中的 IPC 機制 - 使用和最佳實踐

[英]IPC Mechanisms in C# - Usage and Best Practices

不久前我在 Win32 代碼中使用過 IPC - 臨界區、事件和信號量。

.NET環境中的場景如何? 是否有任何教程解釋所有可用選項以及何時使用以及為什么?

微軟最近在 IPC 中的東西是Windows Communication Foundation 實際上,在較低級別(tcp、upd、命名管道等)中沒有什么新東西,但是 WCF 極大地簡化了 IPC 開發。

有用的資源:

當然還有WCF 上的 MSDN

除了明顯的(WCF)之外,還有一個用於 C#/CLR 的 ZeroMQ 綁定,它非常好:

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

使用比 WCF 少得多的代碼和配置來執行面向消息的 IPC、發布/訂閱和各種其他策略。

如果您需要低延遲通信,它也至少比其他任何東西快一個數量級,並且延遲更少。

關於信號量、鎖、互斥體等。如果您通過通信進行共享而不是通過共享進行通信,那么與傳統范式相比,您將擁有更少的麻煩。

我傾向於使用命名管道或 Unix 套接字(取決於我的目標是 MS.NET 還是 Mono——我有一個將它抽象出來的類),因為它易於使用、可移植,並且允許我輕松地與非托管代碼進行互操作. 也就是說,如果您只處理托管代碼,請使用 WCF 或遠程處理——如果您需要 Mono 支持,則使用后者,因為它們的 WCF 支持尚不存在。

如果您需要在機器域上使用而不是通過網絡進行通信,我會建議使用內存映射文件。 請參閱以下鏈接。

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

還有 .NET Remoting,我覺得它很酷,但我猜他們現在已經過時了,因為他們有 WCF。

聽起來好像您對同步技術而不是通信感興趣。 如果是這樣,您可能希望從這里開始,或者更簡潔的概述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM