我正在构建一个应用程序,该应用程序将移动一些潜在的大文件,但我希望这样做不会通过淹没它来干扰用户的网络连接。我知道 Windows BITS 具有这种功能,而这基本上就是我想要复制的功能(就限制而言)。我知道 BITS 还有其他我不感兴趣的功能,我也可以选择从 .NET 中使用它,但我对它的工作原理很感兴趣。
我在网上查看过,除了模糊的“BITS 轮询活动以观察其他程序使用的带宽下降”之外,我还没有找到关于 BITS 究竟如何确定要消耗多少带宽的明确解释。这是什么意思?其他程序消耗的带宽也可能由于许多其他原因而下降 - BITS 可以区分吗?如果我正在寻找一个复制这种“保持在雷达之下,用户不会注意到传输”功能的过程,我将如何去做?
更新:目前有许多程序可以做到这一点 - 最值得注意的是,像 Mozy 这样的自动备份程序。他们将只使用可用的后台带宽,而不会减慢其他应用程序的速度。也许他们只是不断增加他们正在尝试的传输率,直到实际传输率停止增加,然后将其降低 10% 左右。我很好奇是否有人尝试过类似的事情。