Files
parr_api/PARR.Core/Common/Interfaces/IProgressAsync.cs

41 lines
1.1 KiB
C#

namespace PARR.Core.Common.Interfaces
{
/// <summary>
/// Отслеживание програсса (% от задачи)
/// </summary>
/// <typeparam name="T"></typeparam>
public interface IProgressAsync<T>
{
/// <summary>
/// Установить значение програсса (%)
/// </summary>
/// <param name="value"></param>
/// <returns></returns>
Task ReportAsync(T value);
}
/// <summary>
/// Отслеживание програсса (% от задачи)
/// </summary>
/// <typeparam name="T"></typeparam>
public class ProgressAsync<T> : IProgressAsync<T>
{
private readonly Func<T, Task> _handler;
/// <summary>
/// Отслеживание програсса (% от задачи)
/// </summary>
/// <param name="handler"></param>
public ProgressAsync(Func<T, Task> handler)
{
_handler = handler;
}
public Task ReportAsync(T value)
{
return _handler(value);
}
}
}