Код IT Загрузка примера кода…

C# main.cs
public class ProgressService
{
    public async Task ProcessDataAsync(IProgress<ProgressReport> progress, CancellationToken ct)
    {
        var total = 100;
        for (int i = 0; i <= total; i++)
        {
            ct.ThrowIfCancellationRequested();
            await Task.Delay(50, ct);
            progress?.Report(new ProgressReport { PercentComplete = i, Message = $"Step {i}" });
        }
    }
}

public record ProgressReport(int PercentComplete, string Message);
public class ProgressService
{
    public async Task ProcessDataAsync(IProgress<ProgressReport> progress, CancellationToken ct)
    {
        var total = 100;
        for (int i = 0; i <= total; i++)
        {
            ct.ThrowIfCancellationRequested();
            await Task.Delay(50, ct);
            progress?.Report(new ProgressReport { PercentComplete = i, Message = $"Step {i}" });
        }
    }
}

public record ProgressReport(int PercentComplete, string Message);