Beispiel #1
0
        static void PurgeCompletedTasks(object obj)
        {
            List <BackgroundTask> tasks = TaskController.GetProcessTasks(BackgroundTaskStatus.Run);

            foreach (BackgroundTask task in tasks)
            {
                if (task.MaximumExecutionTime != -1 &&
                    ((TimeSpan)(DateTime.Now - task.StartDate)).TotalSeconds > task.MaximumExecutionTime)
                {
                    task.Status = BackgroundTaskStatus.Stopping;

                    TaskController.UpdateTask(task);
                }
            }
        }
Beispiel #2
0
        private static void RunManualTasks()
        {
            var tasks = TaskController.GetProcessTasks(BackgroundTaskStatus.Stopping);

            foreach (var task in tasks)
            {
                TaskManager.StopTask(task.TaskId);
            }

            tasks = TaskController.GetProcessTasks(BackgroundTaskStatus.Starting);

            foreach (var task in tasks)
            {
                var taskThread = new Thread(() => RunBackgroundTask(task))
                {
                    Priority = ThreadPriority.Highest
                };
                taskThread.Start();
                TaskManager.AddTaskThread(task.Id, taskThread);
            }
        }