ProgresssDialog.Wpf 0.2.2

dotnet add package ProgresssDialog.Wpf --version 0.2.2
                    
NuGet\Install-Package ProgresssDialog.Wpf -Version 0.2.2
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="ProgresssDialog.Wpf" Version="0.2.2" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="ProgresssDialog.Wpf" Version="0.2.2" />
                    
Directory.Packages.props
<PackageReference Include="ProgresssDialog.Wpf" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add ProgresssDialog.Wpf --version 0.2.2
                    
#r "nuget: ProgresssDialog.Wpf, 0.2.2"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package ProgresssDialog.Wpf@0.2.2
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=ProgresssDialog.Wpf&version=0.2.2
                    
Install as a Cake Addin
#tool nuget:?package=ProgresssDialog.Wpf&version=0.2.2
                    
Install as a Cake Tool

ProgresssDialog.Wpf

ProgresssDialog.Wpf is a lightweight and reusable WPF component for displaying progress during long-running asynchronous operations.
It allows you to run any user-defined asynchronous task and provides a modal progress window with cancellation support and progress updates.


Features

  • Accepts any IAsyncTask<T>-based task with progress updates
  • Executes tasks asynchronously without freezing the UI
  • Supports real-time progress reporting via IProgress<T>
  • Allows cancellation using a flag (ShouldContinue) in progress data
  • Clean MVVM design with clear separation of concerns
  • Modal progress dialog for intuitive user feedback

Installation

(Coming soon as a NuGet package)


Usage

1. Implement a task with IAsyncTask<ProgressInfo> interface

public class SampleTask : IAsyncTask<ProgressInfo>
{
    public async Task RunAsync(IProgress<ProgressInfo> progress)
    {
        for (int i = 0; i <= 100; i++)
        {
            await Task.Delay(50);
            progress?.Report(new ProgressInfo { Percentage = i, ShouldContinue = true });
        }
    }
}

2. Start the progress window

var task = new SampleTask();
var window = new AsyncProgressDialog.ProgressWindow();
window.Start(task);

For more detailed implementation and source code, please refer to the sample program.
The sample program is stored here.

Product Compatible and additional computed target framework versions.
.NET net8.0-windows7.0 is compatible.  net9.0-windows was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • net8.0-windows7.0

    • No dependencies.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
0.2.2 55 8/1/2025