Pmad.ProgressTracking
0.1.28
dotnet add package Pmad.ProgressTracking --version 0.1.28
NuGet\Install-Package Pmad.ProgressTracking -Version 0.1.28
<PackageReference Include="Pmad.ProgressTracking" Version="0.1.28" />
paket add Pmad.ProgressTracking --version 0.1.28
#r "nuget: Pmad.ProgressTracking, 0.1.28"
// Install Pmad.ProgressTracking as a Cake Addin #addin nuget:?package=Pmad.ProgressTracking&version=0.1.28 // Install Pmad.ProgressTracking as a Cake Tool #tool nuget:?package=Pmad.ProgressTracking&version=0.1.28
Progress Toolkit
Long-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 |
General usage
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) :
- Console (
ConsoleProgessRender
), - WPF (
ProgressViewModel
), - Plain text (
TextProgressRender
)
On a scope you can create :
- sub scope : a progress compose of sub-progress, you can give an estimated number of sub-progress to have an overall progress
- integer/long based progress : your code have to report how many items it have been processed
- percent based progress : your code have to report a progress in percent
To ease inter-operability, provided interfaces derives from IProgress<>
.
Integer Progress (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);
}
}
Percent Progress (IProgressPercent
)
using (var progress = scope.CreatePercent("Integer"))
{
for (int i = 0; i < 250; i++)
{
// do something
rep.Repport(i * 100.0 / 250);
}
}
Scope (IProgressScope
)
Console
Example: ConsoleDemo
WPF
Example: WpfDemo
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net6.0 is compatible. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. |
-
net6.0
- No dependencies.
-
net8.0
- No dependencies.
NuGet packages (4)
Showing the top 4 NuGet packages that depend on Pmad.ProgressTracking:
Package | Downloads |
---|---|
Pmad.ProgressTracking.Wpf
Long-running task progress tracking: WPF frontend. |
|
Pmad.Geometry.Processing
Mass-processing of geometry shapes |
|
Pmad.Drawing
Library for vector based drawing with PDF, PNG/WEBP and SVG support. |
|
Pmad.Cartography.Drawing
Library for drawing maps with PDF, PNG/WEBP and SVG support. |
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
0.1.28 | 401 | 8/20/2024 |
0.1.22 | 201 | 8/19/2024 |
0.1.21-g5004465d93 | 113 | 8/19/2024 |
0.1.16-g0462b12943 | 124 | 8/18/2024 |
0.1.15-g3bac7775be | 122 | 8/18/2024 |
0.1.14-g16d3d7334c | 97 | 8/2/2024 |
0.1.13-g99634b7d95 | 154 | 6/23/2024 |