using System; using System.Threading; using System.Threading.Tasks; using MediaBrowser.Model.Configuration; namespace MediaBrowser.Controller.LibraryTaskScheduler; /// /// Provides a shared scheduler to run library related tasks based on the . /// public interface ILimitedConcurrencyLibraryScheduler { /// /// Enqueues an action that will be invoked with the set data. /// /// The data Type. /// The data. /// The callback to process the data. /// A progress reporter. /// Stop token. /// A task that finishes when all data has been processed by the worker. Task Enqueue(T[] data, Func, Task> worker, IProgress progress, CancellationToken cancellationToken); }