Ejemplo n.º 1
0
        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.");
        }
Ejemplo n.º 2
0
        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
            {
                ;
            }
        }
Ejemplo n.º 3
0
 protected override void OnContinue()
 {
     Notificator.Write("In OnContinue.");
 }