Подтвердить что ты не робот

Механизмы МПК в С# - Использование и передовая практика

Я использовал IPC в коде win32 некоторое время назад. [Критические разделы, события и семафоры]

Какова сцена в среде .NET? Есть ли какой-либо учебник, объясняющий все доступные параметры и когда использовать и почему?

4b9b3361

Ответ 1

Самые последние материалы Microsoft в IPC: Windows Communication Foundation. На самом деле на нижнем уровне нет ничего нового (tcp, upd, named pipes и т.д.). Однако WCF значительно упрощает разработку IPC.

Полезный ресурс:

и, конечно, MSDN в WCF

Ответ 2

Я имею тенденцию использовать именованные каналы или сокеты Unix (в зависимости от того, настроен ли я на MS.NET или Mono - у меня есть класс, который абстрагирует его), поскольку он прост в использовании, переносится и позволяет мне легко взаимодействовать с неуправляемым кодом. Тем не менее, если вы имеете дело только с управляемым кодом, переходите к WCF или удаляете - последний, если вам нужна поддержка Mono, поскольку их поддержка WCF просто еще не существует.

Ответ 3

Помимо очевидного (WCF), существует привязка ZeroMQ для С#/CLR, которая довольно хороша:

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

Есть ли ориентированные на сообщения IPC, pub/sub и различные другие стратегии с гораздо меньшим количеством кода и конфигурации, чем WCF.

Он также по крайней мере на порядок быстрее, чем что-либо еще, и имеет меньшую задержку, если вам требуется низкая латентная связь.

В отношении семафоров, блокировок, мьютексов и т.д. Если вы делитесь сообщениями, а не обмениваетесь совместным использованием, у вас будет меньше нагрузки, чем традиционная парадигма.

Ответ 5

Существует также .NET Remoting, который я нашел довольно крутым, но я думаю, что они теперь переустанавливают его, поскольку у них есть WCF.

Ответ 6

Звучит так, как будто вы заинтересованы в методах синхронизации, а не в общении. Если это так, вы можете начать здесь, или, возможно, это более краткий обзор.