protected override void OnStart(string[] args) { if (FolderWatcherBase.IsLaunched) { throw new System.Exception("Can't start FWService. FolderWather is launched."); } _logger = new Logger(ConfigurationManager.AppSettings["LogFile"]); string watchFolder = ConfigurationManager.AppSettings["DefaultWatchedFolder"] ?? @"D:\epam_temp\"; string watchFilter = ConfigurationManager.AppSettings["DefaultWatchedFilter"] ?? @"*.csv";; _logger.RecordEvent($"Folder: {watchFolder}"); _logger.RecordEvent($"Filter: {watchFilter}"); _csvThreadControl = new CsvWorkThreadsControl(); _csvThreadControl.SendMessage += _csvThreadControl_SendMessage; _logger.RecordEvent($"CSV thread controller started"); _fswatcher = FSWVersion.CreateInstance(watchFolder, watchFilter); _logger.RecordEvent($"Folder Watcher created"); _fswatcher.NewFileDetectedEvent += _fswatcher_NewFileDetectedEvent; Thread fwThread = new Thread(new ThreadStart(_fswatcher.Launch)); fwThread.Start(); _logger.RecordEvent($"Service starting. Watching folder: {watchFolder}"); }
protected override void OnStop() { _csvThreadControl.SendMessage -= _csvThreadControl_SendMessage; _csvThreadControl = null; _logger.RecordEvent($"CSV thread controller stopped"); _fswatcher.Stop(); _fswatcher.NewFileDetectedEvent -= _fswatcher_NewFileDetectedEvent; _fswatcher.Dispose(); _fswatcher = null; _logger.RecordEvent($"FWService stopped."); _logger = null; Thread.Sleep(1000); }