2016-03-20 8 views
0

Dies ist der Kern meines ProblemsHeben und Behandlung von Ereignissen in separaten Prozessen

  1. Verfahren A ein Ereignis auf möglicherweise eine andere Maschine
  2. Verfahren B wirft, fängt das Ereignis und macht etwas

Ist das mit dem .net-Framework überhaupt möglich? Jedes einzelne Beispiel, das ich mir angeschaut habe, hat den Ereignisproduzenten und -verbraucher in demselben Prozess/derselben Anwendung auf demselben Rechner. Manchmal sind sie im selben Thread, manchmal sind sie in verschiedenen Threads, aber sie befinden sich immer in demselben Prozess auf demselben Computer.

Ich kann den gewünschten Effekt mit Event-Handlern erreichen, die Sockets verwenden, um das Ereignis von einem Prozess zu einem anderen zu senden und ein Ereignis auf der Empfängerseite auszulösen. Dies scheint eine sehr umständliche Methode zu sein, da ich Event-IDs erstellen, die Argumente serialisieren/deserialisieren und mit einer ganzen Menge Socket-Code spielen muss, was genau dem entspricht, was ich in den 90er Jahren in C gemacht habe.

Die Frage ist jetzt

Wie kann ich Ereignisse von einem Prozess zum anderen auf der gleichen Maschine mit dem .net Framework Event-Mechanismus senden?

Antwort

0

Das klingt viel wie Inter Process Communication (IPC), für die mehrere Mechanismen existieren, mit unterschiedlichem Grad der Unterstützung in nicht Windows-Systemen. Es gibt WCF, Remoting und Memory-Mapped IPC, aus dem Kopf. In der Praxis fand ich die Verwendung eines leichtgewichtigen Pub-Sub-Mechanismus wie Zeromq als die am besten geeignete Lösung.

+0

Also, was Sie sagen, gibt es keinen eingebauten Mechanismus für die Behandlung von Ereignissen über Prozesse hinweg. Wir müssen WCF oder irgendeine Form von IPC verwenden. Das ist gut genug für mich. – cup

+0

Es gibt auch Event Tracing für Windows (ETW), aber nicht sicher über Liefergarantien, etc. Das könnte wahrscheinlich auch funktionieren, aber im Kern ist es IPC mit einer höheren API. Wenn Sie meine Antwort nützlich fanden, würde es Ihnen etwas ausmachen, sie anzunehmen? – Martin

Verwandte Themen