2

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

所以,这个想法是为每个下载过程使用一个单独的线程,并且能够动态地创建/取消线程。实现这一目标的最佳方法是什么?使用BackgroundWorker,线程池?

4

2 回答 2

6

WebClient XXXAsync 等方法已经为您提供了所有方法的DownloadFileAsync异步版本,这些方法允许您在单独的线程上执行 HTTP 请求。它们还支持 C# 5.0 异步

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

于 2012-02-04T21:55:23.550 回答
0

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

于 2012-02-04T21:55:24.650 回答