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?
I would just use Thread
directly and keep the references to all the treads that I create.