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); }
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 Start() { MessageHandler.SendMessage(nameof(TaskManager), "Task vezérlés kezdése", MessageHandler.MessageType.Info); IsActive = true; s_connectionProvider = new LXConnectionProvider(); // task tábla szinkronizáció engedélyezése TableSync.Enable <T_TASKS>(); // task details tábla szinkronizáció engedélyezése TableSync.Enable <T_TASKS_DETAILS>(); // task timer indítása a ciklikus taskokhoz s_taskTimer = new LXTimer(TimerCallBack, null, TimeSpan.FromSeconds(5), TimeSpan.FromSeconds(5)); }
public void LoginChat(Action listBox) { TwitchApi.Authenticate((t) => { IRC.OnSubReceived += Irc_OnSubReceived1; #if DEBUG IRC.Connect("summit1g");// TwitchApi.Name); #else IRC.Connect(TwitchApi.Name); #endif IRC.IRC_Client.ConnectionComplete += (o, e) => { listBox?.Invoke(); timer = new LXTimer(WorkQueue, 100, LXTimer.Infinite); }; }); }