/// <summary> /// Инициализация работы ядра приложения. /// </summary> public void Initialize(AppConfig config) { isStopped = false; this.appConfig = config; snsrLogger = new SnsrLogger(); snsrLogger.LogInfo("Initializing application..."); // Инициализация ядра приложения. // Загрузка модулей (каналов) опроса и мониторинга данных приборов. // call db initialize from app config. // Запуск ядра опроса для работы с этими модулями. pollCore = new PollCore(); snsrLogger.LogInfo("Starting poll core..."); pollCore.Start(); while (true) { lock (syncObject) { if (isStopped) // Вызвать закрытия всех потоков приложения в ядре опроса. { snsrLogger.LogInfo("Stopping poll core..."); pollCore.Stop(); return; } } } }
public void Start() { if (isStarted) { return; } isStarted = true; // При старте загружаются каналы из БД с модулями опроса. List <IChannel> commChannels = DbService.LoadCommChannels(); SnsrLogger logger = ApplicationCore.GetInstance().GetLogger(); logger.LogDebug("Starting poll core."); foreach (var commChannel in commChannels) { StartChannel(commChannel); } }