processi non condividono la memoria e richiedono un meccanismo tra loro di comunicare. È possibile utilizzare uno dei pochi meccanismi di varietà per questo:
- file o dei dati - un processo scrive un file o DB, l'altro legge da e esegue un metodo in base ai dati o file di contenuto
- Servizio host/client - utilizzare WCF, .NET Remoting, Named Pipes o direct Meccanismo di comunicazione TCP/IP dove un processo ospita un'implementazione dell'interfaccia del servizio e il processo chiamante (il client) utilizza un proxy dell'interfaccia di servizio per serializzare e comunicare la chiamata al processo host - questo è l'approccio migliore se si desidera una richiesta/risposta di stato Interazione
coda
- Messaggio - utilizzare una coda di messaggi come MSMQ in cui un unico processo invia un messaggio alla coda e gli altri lo prende ed esegue il metodo
Sono sicuro che ci sono altri, ma questi sono i tre metodi più comuni.
Il mio preferito è uno scenario host/client di servizio leggero. Ci sono diverse utility leggere per rendere questo più facile per te. È possibile utilizzare RemotingLite o la mia propria estensione di RemotingLite che supporta Named Pipes denominata DuoVia.Net.
fonte
2013-05-03 19:36:40
Perché Thread non è sufficiente? Perché dovresti mai avere 2 'myprogram.exe' in esecuzione in una sola volta, solo per eseguire un metodo? (anche se è possibile.) – sircapsalot
La mia domanda è piuttosto curiosità che vero problema. Voglio sapere è possibile – Jacek
Per capire meglio questo problema, penso che abbiamo bisogno di capire meglio il tuo modo di pensare globale - dicci cosa stai cercando di ottenere (non tecnicamente ma dal punto di vista della funzione) in modo che possiamo capire meglio. –