c# - C# 多线程下载器

标签 c# multithreading download-manager

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

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

最佳答案

WebClient XXXAsync 方法(例如 DownloadFileAsync)已经为您提供了所有方法的异步版本,允许您在单独的线程上执行 HTTP 请求。它们还为 C# 5.0 异步做好了准备。

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

关于c# - C# 多线程下载器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9144878/

相关文章:

c# - 打印 WebBrowser 控件内容

c# - 垃圾收集器在 foreach 循环中太慢?

multithreading - 使用 Python 和多线程处理巨大的 CSV 文件

java - 线程时是否多次分配了java静态字段?

c# - 创建嵌套的子 JSON

javascript - 从 JavaScript asp.net 调用按钮单击不起作用

Java:如何每秒创建一个新线程

android - DownloadManager 没有开始下载文件

ios - 尝试在 iOS swift 上本地下载视频

Firefox 插件下载.jsm