Estoy desarrollando una operación de C# y me gustaría mostrar un diálogo de progreso modal, pero solo cuando una operación será larga (por ejemplo, más de 3 segundos). Ejecuto mis operaciones en un hilo de fondo.Mostrar progreso solo si la operación de fondo es larga
El problema es que no sé de antemano si la operación será larga o corta.
Algún software como IntelliJ tiene un enfoque de temporizador. Si la operación lleva más de x tiempo, entonces muestra un cuadro de diálogo.
¿Cuál cree que es un buen patrón para implementar esto?
- ¿Espera el hilo de la interfaz de usuario con un temporizador y muestra el cuadro de diálogo allí?
- ¿Debo
DoEvents()
cuando muestro el cuadro de diálogo?
¿Por qué simplemente no siempre muestra el progreso? Si es una tarea corta, la barra de progreso se llena y muestra solo un corto período de tiempo. Office, por ejemplo, siempre muestra la barra de progreso de carga en la parte inferior, incluso en un documento pequeño. –
Es molesto ver un cuadro parpadeante (milisegundos) cuando la operación es rápida. –