Search code examples
c#multithreadingdownload-manager

Multi-threaded downloader in C#


I'm working on a WPF download manager which should support downloading multiple files at the same time through HTTP, adding a new download, pause/resume, displaying and updating each download process information (filename, size, download percentage, time left...) in a DataGrid, displaying progress in a ProgressBar and a bunch of other stuff.

So, the idea is to use a separate thread for each download process, and be able to dynamically create/cancel threads. What is the best way to accomplish this? Using a BackgroundWorker, ThreadPool?


Solution

  • I would just use Thread directly and keep the references to all the treads that I create.