private void PipeServer_ClientConnected(NamedPipeConnection <Message, Message> connection) { SessionHelperInstance instance = new SessionHelperInstance(connection); instance.Started += Instance_Started; instance.Terminated += Instance_Terminated; // Initiale Konfiguration SessionHelperConfig config = new SessionHelperConfig(); config.Interval = Context.Interval / 10; instance.Config = config; }
private void Instance_Terminated(SessionHelperInstance instance, bool forced) { if (forced) { EventLog.WriteEntry($"SessionHelper terminated (SID={instance.SID}, PID={instance.PID}) = hung", EventLogEntryType.Error, 82); } instance.Terminated -= Instance_Terminated; instance.Started -= Instance_Started; lock (instances) { instances.Remove(instance); } Terminated?.Invoke(instance); }
private void Instance_Started(SessionHelperInstance instance) { if (InstanceBySID(instance.SID) != null) { EventLog.WriteEntry($"SessionHelper redundant (SID={instance.SID}, PID={instance.PID})", EventLogEntryType.Warning, 81); instance.Terminate(); return; } if (Context.DebugLog) { EventLog.WriteEntry($"SessionHelper connected (SID={instance.SID}, PID={instance.PID})", EventLogEntryType.Information, 81); } lock (instances) { instances.Add(instance); } Started?.Invoke(instance); }