我需要通过非常慢的网络连接使用 HTTP 协议下载一个大文件。手动进行时,下载速度有时会慢得令人难以忍受,并且该过程有时会冻结或终止。
对于手动下载,使用下载管理器(例如FDM )可以大大改善这种情况——这类程序在大约十年前是必不可少且非常流行的,但现在由于可用的网络更好更快,其使用量迅速减少——它从不同位置开始以块的形式并行启动同一文件的多个下载会话,自动重新启动失败或陈旧的会话,实现工作平衡(在成功下载一个块后,将一些仍在下载的剩余块拆分为两个会话),并最终将所有下载的块拼接成一个完整的单个文件。总体而言,它允许在连接不良的情况下使文件下载健壮且更快。
现在我正在尝试在 C# 中实现相同的下载行为以实现自动无人值守下载。我看不到 .NET 框架中的任何现有类实现此功能,因此我正在寻找如何手动实现它的建议(可能借助一些开源 .NET 库)。