Estoy construyendo una aplicación multiproceso en tiempo real en WPF, pero estoy teniendo dificultades para actualizar la interfaz de usuario.WPF Real Time Multithreaded Stock Trading Application
Tengo un hilo de trabajador de fondo que contiene la lógica que determina qué comercios enviar al mercado. Cuando se envía una operación válida al mercado, recibo actualizaciones de estado en estas transacciones mediante eventos en la ventana principal de mi aplicación. Tengo otros eventos en los que recibo actualizaciones de precios en tiempo real.
A través de estos eventos, apago la IU. Ahora parece que recibo eventos tan rápidamente a través de la aplicación, que la IU no puede mantenerse al día con la velocidad a la que se reciben los eventos, lo que hace que la IU se actualice lentamente o no se actualice. Esencialmente, la IU se congela. Después de que todos los eventos se hayan disparado, la IU lentamente vuelve a ser receptiva. Una vez que responde completamente, la IU muestra los datos que estoy esperando.
Mi pregunta es, ¿cómo puedo obtener la interfaz de usuario para actualizar en tiempo real tan rápido como recibo eventos? He estado luchando con esto desde hace un tiempo, por lo que cualquier ayuda sería apreciada.
¡Gracias de antemano!
Fantástico , gracias Brian. Esa es la respuesta que estaba buscando. En pocas palabras, en lugar de permitir que los eventos planteados actualicen la IU, ponerlos en cola, tener un temporizador que muestre periódicamente estas actualizaciones fuera de la cola y actualice la IU. De esa forma, la UI se actualiza dentro de su control, y el intervalo del temporizador puede ajustarse de acuerdo con mis necesidades. – c0D3l0g1c
¡Exactamente! Deje que la IU dicte cuándo está listo para actualizar en lugar de pasar la responsabilidad al hilo del trabajador. –