diff options
| author | Luke Pulverenti <luke.pulverenti@gmail.com> | 2014-05-10 13:28:03 -0400 |
|---|---|---|
| committer | Luke Pulverenti <luke.pulverenti@gmail.com> | 2014-05-10 13:28:03 -0400 |
| commit | 4e816552395c1b57868ccd29f6f2e9b70d7272a5 (patch) | |
| tree | 6ab816e59c9e32f56d726b04e068cf1367269097 /MediaBrowser.Common.Implementations/ScheduledTasks/TaskManager.cs | |
| parent | b9a2af1fd523e22f387e3130bf68b09e4369600f (diff) | |
updated mono build
Diffstat (limited to 'MediaBrowser.Common.Implementations/ScheduledTasks/TaskManager.cs')
| -rw-r--r-- | MediaBrowser.Common.Implementations/ScheduledTasks/TaskManager.cs | 29 |
1 files changed, 20 insertions, 9 deletions
diff --git a/MediaBrowser.Common.Implementations/ScheduledTasks/TaskManager.cs b/MediaBrowser.Common.Implementations/ScheduledTasks/TaskManager.cs index cead5de04..5aec39b89 100644 --- a/MediaBrowser.Common.Implementations/ScheduledTasks/TaskManager.cs +++ b/MediaBrowser.Common.Implementations/ScheduledTasks/TaskManager.cs @@ -17,8 +17,8 @@ namespace MediaBrowser.Common.Implementations.ScheduledTasks /// </summary> public class TaskManager : ITaskManager { - public event EventHandler<EventArgs> TaskExecuting; - public event EventHandler<GenericEventArgs<TaskResult>> TaskCompleted; + public event EventHandler<GenericEventArgs<IScheduledTaskWorker>> TaskExecuting; + public event EventHandler<TaskCompletionEventArgs> TaskCompleted; /// <summary> /// Gets the list of Scheduled Tasks @@ -125,7 +125,7 @@ namespace MediaBrowser.Common.Implementations.ScheduledTasks // If it's idle just execute immediately if (task.State == TaskState.Idle) { - ((ScheduledTaskWorker)task).Execute(); + Execute(task); return; } @@ -149,7 +149,8 @@ namespace MediaBrowser.Common.Implementations.ScheduledTasks { var myTasks = ScheduledTasks.ToList(); - myTasks.AddRange(tasks.Select(t => new ScheduledTaskWorker(t, ApplicationPaths, this, JsonSerializer, Logger))); + var list = tasks.ToList(); + myTasks.AddRange(list.Select(t => new ScheduledTaskWorker(t, ApplicationPaths, this, JsonSerializer, Logger))); ScheduledTasks = myTasks.ToArray(); } @@ -189,9 +190,13 @@ namespace MediaBrowser.Common.Implementations.ScheduledTasks /// Called when [task executing]. /// </summary> /// <param name="task">The task.</param> - internal void OnTaskExecuting(IScheduledTask task) + internal void OnTaskExecuting(IScheduledTaskWorker task) { - EventHelper.QueueEventIfNotNull(TaskExecuting, task, EventArgs.Empty, Logger); + EventHelper.QueueEventIfNotNull(TaskExecuting, this, new GenericEventArgs<IScheduledTaskWorker> + { + Argument = task + + }, Logger); } /// <summary> @@ -199,9 +204,15 @@ namespace MediaBrowser.Common.Implementations.ScheduledTasks /// </summary> /// <param name="task">The task.</param> /// <param name="result">The result.</param> - internal void OnTaskCompleted(IScheduledTask task, TaskResult result) + internal void OnTaskCompleted(IScheduledTaskWorker task, TaskResult result) { - EventHelper.QueueEventIfNotNull(TaskCompleted, task, new GenericEventArgs<TaskResult> { Argument = result }, Logger); + EventHelper.QueueEventIfNotNull(TaskCompleted, task, new TaskCompletionEventArgs + { + Result = result, + Task = task + + }, Logger); + ExecuteQueuedTasks(); } @@ -219,7 +230,7 @@ namespace MediaBrowser.Common.Implementations.ScheduledTasks if (scheduledTask.State == TaskState.Idle) { - ((ScheduledTaskWorker)scheduledTask).Execute(); + Execute(scheduledTask); _taskQueue.Remove(type); } |
