public void Stop() { lock (_runningLock) { if (IsRunning) { KeeperInfos.ForEach(p => p.Keeper?.Stop()); IsRunning = false; } } }
public void Start() { lock (_runningLock) { if (!IsRunning) { IsRunning = true; PrepareKeeper(); KeeperInfos.ForEach(p => p.Keeper?.Start()); } } }
private void PrepareKeeper() { KeeperInfos.ForEach(p => p.Keeper = null); KeeperInfos.ForEach(p => { try { var keeper = PluginHelper.GetKeepper(PluginHelper.Find(p.Key), p.InitKey); keeper.LogEvent += (s, e) => { LogHelper.WriteLog(e); }; p.Keeper = keeper; } catch (Exception e) { LogHelper.WriteLog($"Keeper[{p.Key}] preparation is failed, message:{e.Message}"); } }); }