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); } }
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); }