protected override void OnStop() { // Запущена процедура остановки сервиса. serviceStoped = true; Notificator.Write("Метод OnStop() serviceStoped = " + serviceStoped.ToString()); // Проверяем количество задач на выполнении. // Выход из цикла только если количество задач <= 0. while (taskNumbers > 0) { Notificator.Write("Метод Onstop() taskNumbers = " + taskNumbers); // Задержка 3 минуты. System.Threading.Thread.Sleep(180000); // 1 минута = 60000 мс. } Notificator.Write("In onStop."); }
public async Task ExecuteTasksAsync() { // Создаём регистратор. var registrator = new TaskRegistry.Registrator(); // Заполняем очередь задач. registrator.ProvideTaskData(); // Если задачи в очереди есть... if (registrator.HasTasks) { // Создаём список асинхронных задач. List <Task> taskList = new List <Task>(); // Пробегаемся по очереди. while (registrator.TaskDataQueue.Count > 0) { // Получаем очередной набор данных задачи ГИС ЖКХ. var nextTaskDataPack = registrator.TaskDataQueue.Dequeue(); #if DEBUG Notificator.Write("AsyncRircGisService.ExecuteOriginTaskAsync() Выполняется задача Task_id = " + nextTaskDataPack.TaskId + " Service_id = " + nextTaskDataPack.ServiceId + " Method_id = " + nextTaskDataPack.MethodId); #endif Task task = ExecuteOriginTaskAsync(nextTaskDataPack); taskList.Add(task); } var processingTasks = taskList.Select(async t => { await t; }).ToArray(); // Ожидаем выполнения всех задач. await Task.WhenAll(processingTasks); } else { ; } }
protected override void OnContinue() { Notificator.Write("In OnContinue."); }