MVVM async progress meter example using the Task Parallel Library

I’ve just posted up on GitHub a quick example WPF application that shows an MVVM-style progress meter dialog, using the .NET 4.5 Task Parallel Library (TPL). Specifically demonstrating:

  • A progress meter using .NET 4 Tasks (not BackgroundWorkers).
  • Async support.
  • Cancelling of Tasks via CancellationTokens.
  • Exception handling back to the original thread.
  • Reporting background progress updates via IProgress<T>.
  • Tasks can either be declared as void, or have a return value.
  • Progress can be reported from multiple tasks chained together.
  • An injectable, stateless IProgressDialogService, that can be injected for unit testing purposes.
  • Using an attached property to hide the close button in the progress dialog’s title bar using Win32 interop.
  • Using an attached property to implement a close window command using MVVM.


It’s based off a blog post by Jürgen Bäurle but converted to use MVVM and the TPL.

You can check it out here:

4 thoughts on “MVVM async progress meter example using the Task Parallel Library

  1. I tried to download your example on github, however I received errors related to nuget items being missing. I chose the .zip file for download. BTW, this looks like really great work!

  2. I’ve got the same problem as Rbunn83815.
    I think that we miss something. Where do we get these files? What is it?

Comments are closed.