using System;
using System.Threading;
using System.Threading.Tasks;
namespace AsbCloudApp.Services
{
///
/// Сервис выстраивает очередь из фоновых задач. Ограничивает количество одновременно выполняющихся задач.
///
public interface IBackgroundWorkerService
{
///
/// Проверка, есть ли задача в очереди
///
/// идентификатор задачи
///
bool Contains(string id);
///
/// Добавляет в очередь задач новую задачу
///
/// идентификатор задачи
/// делегат
/// id задачи в очереди
string Enqueue(string id, Func func);
///
/// Добавляет в очередь задач новую задачу
///
///
///
string Enqueue(Func func);
///
/// Добавляет в очередь задач новую задачу
///
/// идентификатор задачи
///
///
///
string Enqueue(string id, Func func, Func onError);
///
/// Пробуем удалить задачу по идентификатору
///
///
///
bool TryRemove(string id);
}
}