Procesy nie dzielą pamięci i wymagają mechanizmu między nimi komunikować. Można użyć jednego z Mechanizmy odmian tego:
- plików lub danych - jeden proces zapisuje do pliku lub DB, drugi czyta od i wykonuje jakąś metodę opartą na danych lub pliku zawartości
- serwisu host/client - użyj WCF, .NET Remoting, nazwanych potoków lub bezpośredniego mechanizmu komunikacji TCP/IP, w którym jeden proces obsługuje implementację interfejsu usługi , a proces wywołujący (klient) używa serwera proxy usługi do serializowania i komunikacji wywołanie do procesu hosta - jest to najlepsze podejście, jeśli chcesz uzyskać stateful request/response Interakcja
kolejka
- Message - wiadomość użyć kolejkę jak MSMQ gdzie jeden proces wysyła komunikat do kolejki i innych podnosi go i wykonuje metodę
jestem pewien, że są inni, ale są to trzy najpopularniejsze metody.
Mój ulubiony to scenariusz host/klient o niewielkiej wadze. Istnieje kilka lekkich narzędzi, które ułatwiają to zadanie. Możesz użyć RemotingLite lub mojego własnego rozszerzenia RemotingLite, które obsługuje nazwy potoków nazwanych DuoVia.Net.
Dlaczego wątek nie jest wystarczający? Dlaczego miałbyś kiedykolwiek potrzebować 2 'myprogram.exe' na raz, tylko po to, aby uruchomić metodę? (Jeśli to nawet możliwe.) – sircapsalot
Moje pytanie jest raczej ciekawostką niż prawdziwym problemem. Chcę wiedzieć, czy to możliwe – Jacek
Aby lepiej zrozumieć ten problem, myślę, że musimy lepiej zrozumieć twój ogólny sposób myślenia - powiedz nam, co próbujesz osiągnąć (nie technicznie, ale z perspektywy funkcji), abyśmy mogli lepiej zrozumieć. –