我正在开发一个WPF下载管理器,它应该支持通过HTTP同时下载多个文件,添加新的下载,暂停/恢复,显示和更新每个下载过程的信息(文件名,大小,下载百分比,剩余时间...)在DataGrid中,在ProgressBar中显示进度和其他一些东西。
因此,我们的想法是为每个下载进程使用一个单独的线程,并且能够动态地创建/取消线程。实现这一目标的最佳方法是什么?使用BackgroundWorker,ThreadPool?
发布于 2012-02-05 05:55:25
我会直接使用Thread,并保留对我创建的所有踏步的引用。
发布于 2012-02-05 05:55:24
诸如DownloadFileAsync之类的HTTP方法已经为您提供了所有方法的异步版本,这些方法允许您在单独的线程上执行WebClient请求。它们也是C# 5.0异步就绪的。
由于这是一个WPF应用程序,因此您应该确保使用Dispatcher.BeginInvoke方法仅在主UI线程上修改UI控件。
https://stackoverflow.com/questions/9144878
复制相似问题