Domanda

Ho usato IPC nel codice Win32 qualche tempo fa.[Sezioni critiche, eventi e semafori]

Com'è la scena nell'ambiente .NET?Esistono tutorial che spiegano tutte le opzioni disponibili, quando utilizzarle e perché?

È stato utile?

Soluzione

Il materiale più recente di Microsoft in IPC è Fondazione per la comunicazione di Windows.In realtà non c'è nulla di nuovo nel livello inferiore (tcp, upd, pipe denominate ecc.) Ma WCF semplifica notevolmente lo sviluppo IPC.

Risorsa utile:

e naturalmente MSDN su WCF

Altri suggerimenti

A parte l'ovvio (WCF), esiste un collegamento ZeroMQ per C#/CLR che è piuttosto buono:

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

Esegue IPC orientato ai messaggi, pub/sub e varie altre strategie con molto meno codice e configurazione rispetto a WCF.

È anche almeno un ordine di grandezza più veloce di qualsiasi altra cosa e ha meno latenza se hai bisogno di comunicazioni a bassa latenza.

Per quanto riguarda semafori, lock, mutex ecc.Se condividi comunicando anziché comunicare condividendo, avrai molti meno problemi rispetto al paradigma tradizionale.

Tendo a utilizzare pipe denominate o socket Unix (a seconda che mi rivolga a MS.NET o Mono: ho una classe che lo astrae) poiché è facile da usare, portatile e mi consente di interagire facilmente con codice non gestito .Detto questo, se hai a che fare solo con codice gestito, scegli WCF o servizi remoti: quest'ultimo se hai bisogno del supporto Mono, poiché il loro supporto WCF semplicemente non è ancora disponibile.

Consiglierei di utilizzare Memory Mapped Files se è necessario utilizzare il dominio della macchina senza comunicare tramite la rete.Vedi il seguente collegamento.

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

C'è anche .NET Remoting, che ho trovato piuttosto interessante, ma immagino che lo stiano rendendo obsoleto ora che hanno WCF.

Sembra che tu sia interessato alle tecniche di sincronizzazione piuttosto che alla comunicazione.Se è così, potresti iniziare Qui, o forse questo di più panoramica sintetica.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top