public void AddTask(UserTask task) { Taskandler taskandler = new Taskandler(); taskandler.UserTask = task; StoreTasks.Enqueue(taskandler); }
private void ExecuteTask() { mainThread = new Thread(() => { do { if (ReadyTasks.Count <= MAX_VALUE) { for (int i = ReadyTasks.Count; i < MAX_VALUE; i++) { if (StoreTasks.Count != 0) { ReadyTasks.Enqueue(StoreTasks.Peek()); StoreTasks.Dequeue(); } } } if (ReadyTasks.Count > 0) { Taskandler executeHandler = ReadyTasks.Peek(); UserTask u = executeHandler.UserTask; thread = new Thread(new ThreadStart(u)); thread.Start(); ReadyTasks.Dequeue(); thread.Join(); EventDataBase.TriggerEvent("PRINT_LABEL"); CommandState.Command commamd = CommandState.Instance.GetCommand(); } } while (true); }); mainThread.Start(); }