Long-running task progress tracking: abstractions and console frontend.
$ dotnet add package Pmad.ProgressTrackingLong-running task progress tracking toolkit.
The API is not yet stable and may change.
| Package | Version | Description |
|---|---|---|
| Pmad.ProgressTracking | Abstractions, text and console frontend | |
| Pmad.ProgressTracking.Wpf | WPF frontend |
You need to create a "Progress Render", to acquire an IProgressScope that will be the base to create detailed progress reports.
Multiple implementation exists (see below for example and preview) :
ConsoleProgessRender),ProgressViewModel),TextProgressRender)On a scope you can create :
To ease inter-operability, provided interfaces derives from IProgress<>.
IProgressInteger)using (var progress = scope.CreateInteger("Integer", 250))
{
for (int i = 0; i < 250; i++)
{
// do something
rep.ReportOneDone();
}
}
or
using (var progress = scope.CreateInteger("Integer", 250))
{
for (int i = 0; i < 250; i++)
{
// do something
rep.Repport(i);
}
}
IProgressPercent)using (var progress = scope.CreatePercent("Integer"))
{
for (int i = 0; i < 250; i++)
{
// do something
rep.Repport(i * 100.0 / 250);
}
}
IProgressScope)Example: ConsoleDemo
Example: WpfDemo