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.

screenshot

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: https://github.com/rdingwall/wpf-mvvm-task-progress-dialog/

May 12, 2013

4 Comments

rbunn83815 on June 24, 2013 at 10:56 pm.

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!

Jonas on July 5, 2013 at 2:47 pm.

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

Jonas on July 5, 2013 at 3:13 pm.

Ok, I’m trying to install this now: nuget.codeplex.com

Gokul on February 19, 2014 at 1:29 pm.

I get an error of missing Nuget items. Is there any alternative link for the source?

Leave a Reply