41 lines
1.1 KiB
C#
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);
|
|
}
|
|
}
|
|
|
|
}
|