我有一种情况需要从C#windows服务应用程序从webdav服务器下载大量(~1 GB)媒体文件 . 我正在考虑哪种方法更好:

  • 使用WebClient异步方法通过主线程上的回调下载存储在数组中的文件,以通知下载完成 . 可以使用手动重置事件进行同步

  • 使用后台工作程序和Web客户端同步下载方法

  • 使用ThreadPool和Web Client同步下载方法

  • 使用手动线程和Web客户端同步下载方法

我尝试使用Web客户端异步下载API,但它们似乎不是非阻塞的,因为在初始化媒体下载并最终抛出操作超时后,在主线程上调用Web服务时,我的主线程似乎被阻止了媒体文件不是平行下载,而是逐个下载,如下载文件夹中所见 .

哇,这是你的建议 .