Sto creando un'applicazione multithreading in tempo reale in WPF, ma ho difficoltà ad aggiornare l'interfaccia utente.Applicazione di compravendita di azioni multithread in tempo reale WPF
Ho un thread di lavoro in background che contiene la logica che determina ciò che viene scambiato sul mercato. Quando una transazione valida viene inviata al mercato, ricevo aggiornamenti di stato su questi scambi tramite eventi nella mia finestra principale dell'applicazione. Ho altri eventi in cui ricevo aggiornamenti dei prezzi in tempo reale.
Attraverso questi eventi, rieseguo l'interfaccia utente. Ora sembra che ricevo gli eventi così rapidamente attraverso l'applicazione, che l'interfaccia utente non riesca a tenere il passo con la velocità con cui vengono ricevuti gli eventi, causando l'aggiornamento dell'interfaccia utente lentamente o per nulla. Essenzialmente l'interfaccia utente si blocca. Dopo che tutti gli eventi sono stati attivati, l'interfaccia utente diventa nuovamente reattiva. Una volta che è pienamente reattivo, l'interfaccia utente mostra i dati che mi aspetto.
La mia domanda è: come posso ottenere l'interfaccia utente per l'aggiornamento in tempo reale alla stessa velocità con cui ricevo gli eventi? Ho lottato con questo per un po 'ora, quindi ogni aiuto sarebbe apprezzato.
Grazie in anticipo!
Grazie Brian. Questa è la risposta che stavo cercando. Quindi, in poche parole, invece di consentire agli eventi in rilievo di aggiornare l'interfaccia utente, metterli in coda, disporre di un timer che periodicamente preleva tali aggiornamenti dalla coda e aggiorna l'interfaccia utente. In questo modo l'interfaccia utente viene aggiornata all'interno del tuo controllo e l'intervallo del timer può essere regolato in base alle mie esigenze. – c0D3l0g1c
Esattamente! Lascia che sia l'UI a dettare quando è pronto per l'aggiornamento anziché trasferire la responsabilità al thread di lavoro. –