HTTP-загрузка с низким приоритетом в .net

Я пишу программу, которая загружает огромные объемы данных, и мне нужно ограничить ее влияние на просмотр веб-страниц и другие действия пользователей.

Загрузка состоит из множества файлов большого размера, которые передаются по отдельности, соединение должно быть стандартным HTTP POST (я не контролирую сервер), и мне нужно управлять заголовками HTTP (сервер использует их для аутентификации и метаданные)

Важно, чтобы загрузка возобновлялась на полной скорости, когда пользователь больше не пользуется Интернетом, потому что в противном случае она никогда не завершится (я ожидаю, что для завершения ей потребуется работать в течение недели или более на полной скорости).

Я хочу решить эту проблему, каким-то образом сделав мое HTTP-соединение с низким приоритетом, обнаружив открытые окна браузера и замедление не решает проблему, потому что (а) пользователь может использовать приложение, отличное от браузера (FTP, клиент Twitter, электронная почта и т. д.) и (б) Я не хочу замедляться, если открыто незанятое окно веб-браузера.

Я нашел BITS, но я думаю, что это не актуально для меня, так как мне нужно, чтобы стандартный HTTP POST.

Я использую .net 3.5, программа написана на C #, и в настоящее время я использую HttpWebReques t для загрузки.

Пояснение: Я пишу потребительское программное обеспечение, которое будет работать на персональном компьютере клиента дома. Мои бета-тестеры жалуются, что Интернет работает медленно, когда они запускают мою программу (это понятно, поскольку я использую всю их пропускную способность), поэтому я хочу отдать более высокий приоритет другим программам, чтобы их Интернет больше не был медленным.

сетевая инфраструктура, которая может определять приоритеты пакетов в сети и отсутствие ИТ-команды для установки и настройки чего-либо, я действительно ожидаю, что у большинства клиентов будет дешевый беспроводной маршрутизатор, который они получили бесплатно от своего интернет-провайдера

20
задан Nir 5 July 2011 в 10:14
поделиться