C#中的多线程下载器

时间:2012-02-04 21:51:26

标签: c# multithreading download-manager

我正在开发一个WPF下载管理器,它应该支持通过HTTP同时下载多个文件,添加新的下载,暂停/恢复,显示和更新每个下载进程信息(文件名,大小,下载百分比,时间)在DataGrid中左侧显示,显示ProgressBar中的进度和一堆其他内容。

因此,我们的想法是为每个下载过程使用一个单独的线程,并能够动态创建/取消线程。完成此任务的最佳方法是什么?使用BackgroundWorker,ThreadPool?

2 个答案:

答案 0 :(得分:6)

DownloadFileAsync XXXAsync方法(例如{{1}})已经为您提供了允许您在不同线程上执行HTTP请求的所有方法的异步版本。它们也是 C#5.0 async 准备好了。

由于这是一个WPF应用程序,因此应确保仅使用WebClient方法在主UI线程上修改UI控件。

答案 1 :(得分:0)

我会直接使用Thread并保留对我创建的所有踏板的引用。

相关问题