Track progress after each completed step.

Progress Updates

ProgressUpdates.cs
using System;

class Program
{
    static void Main()
    {
        int steps = ;
        int percent = 0;

        for (int current = 1; current <= steps; current++)
        {
            percent = current * 100 / steps;
            Console.WriteLine($"step={current}, percent={percent}");
        }

        Console.WriteLine($"final={percent}");
    }
}
using System;

class Program
{
    static void Main()
    {
        int steps = ;
        int percent = 0;

        for (int current = 1; current <= steps; current++)
        {
            percent = current * 100 / steps;
            Console.WriteLine($"step={current}, percent={percent}");
        }

        Console.WriteLine($"final={percent}");
    }
}
using System;

class Program
{
    static void Main()
    {
        int steps = ;
        int percent = 0;

        for (int current = 1; current <= steps; current++)
        {
            percent = current * 100 / steps;
            Console.WriteLine($"step={current}, percent={percent}");
        }

        Console.WriteLine($"final={percent}");
    }
}
async Async operations often report progress between awaits so the caller can update the user interface.