public static void Main()
var progress = new Progress(17);
progress.GetProgressHandlers += () => 3;
progress.GetProgressHandlers += second;
progress.GetProgressHandlers += third;
Console.WriteLine(progress.Report());
public delegate int GetProgress();
public GetProgress GetProgressHandlers;
public int Total { get; }
public Progress(int total)
current = GetProgressHandlers.Invoke();
return current / (float)Total;