Пример #1
0
 private void WorkQueue(LXTimer timer)
 {
     if (queue.Count > 0)
     {
         while (queue.Count > 0)
         {
             queue.Dequeue().Invoke();
         }
         timer.Change(100, LXTimer.Infinite);
     }
     else
     {
         timer.Change(500, LXTimer.Infinite);
     }
 }
Пример #2
0
        public static void Stop()
        {
            // task details tábla szinkronizáció leállítása
            TableSync.Disable <T_TASKS_DETAILS>();

            // task tábla szinkronizáció leállítása
            TableSync.Disable <T_TASKS>();

            // task timer megállítása
            s_taskTimer?.Change(Timeout.Infinite, Timeout.Infinite);

            // megvárjuk míg végigfut a ciklikus task feladata
            s_taskTimer?.WaitToFinish();
            s_taskTimer?.Dispose();
            s_taskTimer = null;

            lock (s_activeTasks)
            {
                // egyéb taskok leállítása
                Parallel.ForEach(s_activeTasks, current => StopTask(current.Value));

                // taskok törlése
                s_activeTasks.Clear();
            }

            s_connectionProvider = null;

            MessageHandler.SendMessage(nameof(TaskManager), "Task vezérlés befejeződött", MessageHandler.MessageType.Info);
        }