Debounce (o rebote) para C#

 ¿Qué es Debounce?

El debounce (o rebote) es una práctica de programación que se utiliza para garantizar que las tareas que consumen mucho tiempo no se activen con tanta frecuencia y que detenga el rendimiento de nuestra aplicación o sitio web.

En palabras fáciles: Con Debounce establecemos un límite (de milisegundos) que debe transcurrir para poder ejecutar algo.



Debouncer.cs

Gist:  https://bit.ly/debouncecs

 Ejemplo

El objetivo de este ejemplo será crear dos páneles, en los cuales se llame a un método en el evento Mouse Move. En el primer panel, no usaremos Debounce, en el segundo sí. En ambos incrementaremos un contador en el mouse move, y lo mostraremos debajo de cada uno.

1. Creamos un nuevo proyecto

2. Renombramos nuestro form principal, y le agregamos dos páneles



3. Pintamos los páneles (opcional), y agregamos algunas label para mostrar los resultados


4. Instanciamos el debouncer, y lo agregamos al dispose del form.

El dispose es utilizado para abortar el hilo que corre dentro de la clase Debouncer.

5. Nos suscribimos al evento mouse move de cada panel.

6. Declaramos los contadores, y los incrementamos dentro de los eventos MouseMove.

Como se puede apreciar, utilizamos el método Invoke en el evento MouseMove del panel con Debouncer. Esto es debido a que Debouncer maneja su propio thread, entonces si no actualizamos el Text del label dentro de un método Invoke (para que este se ejecute en el thread del Form), nuestra aplicación fallará. 


Resultado final



¡Espero que les haya servido!

Si les gustó este contenido, no olviden suscribirse a mi canal de Youtube: A Codearla

¡Saludos!









Comentarios

Entradas populares de este blog

Ordenar lista en python - Super fácil!