public void QueueNewTask(AppTask appTask) { lock (taskLock) { _allTasks.Add(appTask); if (_tasksRunning.Count < Environment.ProcessorCount) { appTask.Task.Start(TaskScheduler.Default); _tasksRunning.Add(appTask); } else { appTask.Priority = _tasksAwaitRunning.Count; _tasksAwaitRunning.Add(appTask); } } }