Nel mio attuale progetto ho un grafico 3D ad alta intensità di CPU che deve essere aggiornato in tempo reale.
Ho utilizzato gli operatori in background per il progetto e li ho utilizzati, faccio tutto il processo in background. Ricezione di messaggi, interpretazione del messaggio, infine passare il set di dati a gui.
Il passaggio della GUI di aggiornamento richiede 20-50 ms a seconda della quantità di dati. Il problema con questo è che il mio propertygrid sul lato, che è lì per cambiare le impostazioni non rimane reattivo mentre il grafico 3D viene aggiornato. Inserendo un ritardo tra i cicli di aggiornamento sono riuscito a bypassare il problema, ma non è una soluzione permanente.
Esiste comunque un thread separato che aggiorna e interagisce in modo specifico con un solo controllo invece di avere il thread principale intasato dalla quantità di dati passati a tutti i controlli.
O c'è un modo per impostare una priorità per alcuni controlli all'interno della GUI in modo che siano aggiornati in tale ordine, in altre parole la griglia delle proprietà non viene mai bloccata a prescindere dai dati inviati agli altri controlli nel thread principale.