Beispiel #1
0
        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);
                }
            }
        }