Hallo,
ich bin neu hier. Sorry wenn ich meine Frage im falschen Bereich poste:
Ich habe drei Applikationen, die zusammengehören, und möchte in Applikation zwei sehen, ob Applikation eins und drei auf irgendeinem Rechner im Netzwerk laufen, und benachrichtigt werden, falls sie nicht mehr laufen oder wieder gestartet werden. Die Applikationen greifen auf die selbe DLL zu.
Zunächst habe ich mir das so vorgestellt:
Eine Applikation wird gestartet, und setzt über eine statische Funktion der DLL eine entsprechende Property - ebenfalls in der DLL - zur Indikation dass sie nun läuft. Diese Funktion löst ein Event in Applikation zwei aus.
Hier der abstrahierte Ansatz:
DLL:
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38:
| public static class ApplicationsClass { private static bool isApplication1Running; private static bool isApplication2Running; public enum ApplicationsEnum { Application1 = 1, Application2 = 2 } public static bool IsApplication1Running { get { return isApplication1Running; } set { isApplication1Running = value; } } public static bool IsApplication2Running { get { return isApplication2Running; } set { isApplication2Running = value; } } public delegate void ApplicationStartedDelegate(ApplicationsEnum application); public static event ApplicationStartedDelegate ApplicationStartedEvent; public static void SetApplicationRunning(ApplicationsEnum application) { switch (application) { case ApplicationsEnum.Application1: IsApplication1Running = true; ApplicationStartedEvent(ApplicationsEnum.Application1); break; case ApplicationsEnum.Application2: IsApplication2Running = true; ApplicationStartedEvent(ApplicationsEnum.Application2); break; default: break; } } } |
In der jeweiligen Applikation würde dann beim Starten einfach SetApplicationRunning() aufgerufen werden.
Nun habe ich mir vorgestellt, dass ein instantiiertes ApplicationStartedEvent() in einer Applikation hierdurch ausgelöst werden könnte.
Dies habe ich auf diesem Wege nicht hinbekommen. Ist so etwas möglich? Oder ist diese Vorgehensweise vielleicht nicht sinnvoll?
PS: Leerzeilen im Codeabschnitt wurden nicht übernommen, dafür waren am Ende zu viele. Was mache ich falsch?