Nachricht von einer running console app an eine andere senden

8

Ich habe eine Konsolen-App, die eine lange Synchronisierung mit einem FTP-Server durchführt.
Eine andere Konsolenanwendung bereitet ein lokales Dateisystem mit einigen benötigten aktualisierten Dateien vor.
Dann wartet der zweite auf den ersten, bevor er den Namen eines letzten Verzeichnisses vertauscht, so dass es im Web sichtbar wird.

Ich habe nach dem besten Weg gesucht, die Synchronisierungs-App so zu konfigurieren, dass sie der zweiten App mitteilt, dass sie fertig ist. Es sieht so aus, als ob Data Copy für IPC verwenden am besten ist geeignete Lösung dafür.

Die Frage ist zweifach:

  • Habe ich recht? Gibt es einen direkteren Weg zum selben Ergebnis?
  • Gibt es einen verwalteten (.net) Weg, dies zu tun?
Boris Callens 26.01.2009, 16:39
quelle

2 Antworten

10

Wenn Sie lediglich eine Anwendung benachrichtigen müssen, dass die andere ihre Aufgabe abgeschlossen hat, besteht die einfachste Möglichkeit darin, ein benanntes EventWaitHandle zu verwenden. Das Objekt wird in seinem nicht signalisierten Status erstellt. Die erste App wartet auf den Griff, und die zweite App signalisiert dem Griff, wenn es seine Arbeit erledigt hat. Zum Beispiel:

%Vor%

Damit wird das erste Programm eingerichtet, das auf die Synchronisation wartet. Die zweite Anwendung ist ebenso einfach:

%Vor%

Wenn die zweite Anwendung Set aufruft, signalisiert sie das Ereignis und die erste Anwendung wird fortgesetzt.

    
Jim Mischel 26.01.2009, 17:54
quelle
5

Zu den weiteren beliebten Optionen für IPC gehören:

  • Named Pipes
  • Remoting (.NET)
  • WCF

Wenn Sie nur eine Synchronisierung benötigen, können Sie ein Objekt Semaphore oder Mutex berücksichtigen. Es gibt Klassen, die im Namespace System.Threading für .NET vorhanden sind. Wenn Sie benannte Versionen von diesen erstellen, gelten sie für die gesamte Maschine.

    
Matt Brunell 26.01.2009 16:44
quelle

Tags und Links