Я занимаюсь разработкой программы, которая непрерывно отправляет поток данных в фоновом режиме, и я хочу позволить пользователю установить ограничение как для загрузки, так и для ограничения загрузки.
Я прочитал о токеновой корзине и негерметичной корзине алгоритмов, и, кажется, последний, кажется, соответствует описанию, поскольку это не вопрос максимизации пропускной способности сети, а скорее быть максимально ненавязчивым.
Я, однако, немного не уверен, как бы это реализовать. Естественный подход состоит в том, чтобы расширить абстрактный класс Stream, чтобы упростить расширение существующего трафика, но не потребует ли это участия дополнительных потоков для отправки данных при одновременном получении (утечка данных)? Будем благодарны за любые подсказки по другим реализациям, которые делают то же самое.
Кроме того, хотя я могу изменить объем данных, которые получает программа, насколько хорошо работает регулирование пропускной способности на уровне C #? Будет ли компьютер по-прежнему получать данные и просто сохранять их, эффективно отменяя эффект регулирования или будет ждать, пока я не получу больше?
РЕДАКТИРОВАТЬ: меня интересует регулирование входящих и исходящих данных, когда я не могу контролировать противоположный конец потока.