Я использовал IPC в коде win32 некоторое время назад. [Критические разделы, события и семафоры]
Какова сцена в среде .NET? Есть ли какой-либо учебник, объясняющий все доступные параметры и когда использовать и почему?
Я использовал IPC в коде win32 некоторое время назад. [Критические разделы, события и семафоры]
Какова сцена в среде .NET? Есть ли какой-либо учебник, объясняющий все доступные параметры и когда использовать и почему?
Самые последние материалы Microsoft в IPC: Windows Communication Foundation. На самом деле на нижнем уровне нет ничего нового (tcp, upd, named pipes и т.д.). Однако WCF значительно упрощает разработку IPC.
Полезный ресурс:
и, конечно, MSDN в WCF
Я имею тенденцию использовать именованные каналы или сокеты Unix (в зависимости от того, настроен ли я на MS.NET или Mono - у меня есть класс, который абстрагирует его), поскольку он прост в использовании, переносится и позволяет мне легко взаимодействовать с неуправляемым кодом. Тем не менее, если вы имеете дело только с управляемым кодом, переходите к WCF или удаляете - последний, если вам нужна поддержка Mono, поскольку их поддержка WCF просто еще не существует.
Помимо очевидного (WCF), существует привязка ZeroMQ для С#/CLR, которая довольно хороша:
http://www.zeromq.org/bindings:clr
Есть ли ориентированные на сообщения IPC, pub/sub и различные другие стратегии с гораздо меньшим количеством кода и конфигурации, чем WCF.
Он также по крайней мере на порядок быстрее, чем что-либо еще, и имеет меньшую задержку, если вам требуется низкая латентная связь.
В отношении семафоров, блокировок, мьютексов и т.д. Если вы делитесь сообщениями, а не обмениваетесь совместным использованием, у вас будет меньше нагрузки, чем традиционная парадигма.
Я бы рекомендовал использовать файлы с памятью, если вам нужно использовать в домене машины, а не через сеть. См. Следующую ссылку.
http://techmikael.blogspot.com/2010/02/blazing-fast-ipc-in-net-4-wcf-vs.html
Существует также .NET Remoting, который я нашел довольно крутым, но я думаю, что они теперь переустанавливают его, поскольку у них есть WCF.
Звучит так, как будто вы заинтересованы в методах синхронизации, а не в общении. Если это так, вы можете начать здесь, или, возможно, это более краткий обзор.