| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 | using MediaBrowser.Model.Events;using System;using System.Collections.Generic;using System.Threading.Tasks;namespace MediaBrowser.Common.ScheduledTasks{    public interface ITaskManager : IDisposable    {        /// <summary>        /// Gets the list of Scheduled Tasks        /// </summary>        /// <value>The scheduled tasks.</value>        IScheduledTaskWorker[] ScheduledTasks { get; }        /// <summary>        /// Cancels if running and queue.        /// </summary>        /// <typeparam name="T"></typeparam>        /// <param name="options">Task options.</param>        void CancelIfRunningAndQueue<T>(TaskExecutionOptions options)            where T : IScheduledTask;        /// <summary>        /// Cancels if running and queue.        /// </summary>        /// <typeparam name="T"></typeparam>        void CancelIfRunningAndQueue<T>()            where T : IScheduledTask;        /// <summary>        /// Cancels if running.        /// </summary>        /// <typeparam name="T"></typeparam>        void CancelIfRunning<T>()            where T : IScheduledTask;        /// <summary>        /// Queues the scheduled task.        /// </summary>        /// <typeparam name="T"></typeparam>        /// <param name="options">Task options.</param>        void QueueScheduledTask<T>(TaskExecutionOptions options)            where T : IScheduledTask;        /// <summary>        /// Queues the scheduled task.        /// </summary>        /// <typeparam name="T"></typeparam>        void QueueScheduledTask<T>()            where T : IScheduledTask;        void QueueIfNotRunning<T>()            where T : IScheduledTask;                /// <summary>        /// Queues the scheduled task.        /// </summary>        /// <param name="task">The task.</param>        /// <param name="options">The task run options.</param>        void QueueScheduledTask(IScheduledTask task, TaskExecutionOptions options = null);        /// <summary>        /// Adds the tasks.        /// </summary>        /// <param name="tasks">The tasks.</param>        void AddTasks(IEnumerable<IScheduledTask> tasks);        void Cancel(IScheduledTaskWorker task);        Task Execute(IScheduledTaskWorker task, TaskExecutionOptions options = null);        void Execute<T>()            where T : IScheduledTask;                event EventHandler<GenericEventArgs<IScheduledTaskWorker>> TaskExecuting;        event EventHandler<TaskCompletionEventArgs> TaskCompleted;        bool SuspendTriggers { get; set; }    }}
 |