SyncAsyncParallelExamples contains a WPF app that demonstrates URLs being downloaded synchronously and asynchronously (with and without parallelism). It also shows how asynchronous operations can be cancelled, and how the progress of the downloads can be displayed in a progress bar.
Note: For brevity, only basic error handling and resiliency has been implemented.