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); } } }
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); } }