Estoy desarrollando un programa que envía continuamente una secuencia de datos en segundo plano y quiero permitir que el usuario establezca un límite para los límites de carga y descarga.Disminución del ancho de banda en C#
He leído en los token bucket y leaky bucket alghorhithms, y aparentemente este último parece ajustarse a la descripción ya que esto no es una cuestión de maximizar el ancho de banda de red, sino más bien ser lo más discreto posible.
Sin embargo, estoy un poco inseguro de cómo implementaría esto. Un enfoque natural es extender la clase Stream abstracta para que sea más simple extender el tráfico existente, pero ¿no requeriría la participación de hilos adicionales para enviar los datos mientras se recibe simultáneamente (cubo con fugas)? Cualquier sugerencia sobre otras implementaciones que hagan lo mismo sería apreciada.
Además, aunque puedo modificar la cantidad de datos que recibe el programa, ¿qué tan bien funciona el estrangulamiento del ancho de banda en el nivel C#? ¿La computadora aún recibirá los datos y simplemente los guardará, cancelando efectivamente el efecto de aceleración o esperará hasta que solicite recibir más?
EDITAR: Estoy interesado en la regulación de los datos entrantes y salientes, donde no tengo control sobre el extremo opuesto de la secuencia.
Será más preciso si no configura 'processed' en' 0' cuando el temporizador marca, pero reste 'maxBytesPerSecond' de él. –