Я разрабатываю программу, которая постоянно отправляет поток данных в фоновом режиме, и я хочу разрешить пользователю устанавливать ограничение для ограничения загрузки и загрузки.
Я прочитал в маркер токена и просачивающийся ковш alghorhithms, и, похоже, последнее, похоже, соответствует описанию, поскольку это не вопрос максимизации пропускной способности сети, а скорее как максимально ненавязчивый.
Я, однако, немного не уверен в том, как это реализовать. Естественным подходом является расширение абстрактного класса Stream, чтобы упростить расширение существующего трафика, но не потребует ли этого участия дополнительных потоков для отправки данных при одновременном получении (утечка ведра)? Любые намеки на другие реализации, которые делают то же самое, будут оценены.
Кроме того, хотя я могу изменить, сколько данных получает программа, насколько хорошо работает дросселирование полосы пропускания на уровне С#? Будет ли компьютер получать данные и просто сохранять его, эффективно отменяя эффект дросселирования или он будет ждать, пока я попрошу получить больше?
EDIT: меня интересует дросселирование как входящих, так и исходящих данных, где я не контролирую противоположный конец потока.