PDA

View Full Version : [C++ / Qt] Heavy data streams


Teo@Unix
07-06-2012, 22:43
Vi spiego...
io leggo da 14 canali da ognuno di questi arrivano molti dati. Diciamo che ogni secondo ci sono varie chiamate a una funzione che riempie un buffer.

Ora, devo aggiornare l'interfaccia grafica inserendo questi dati in dei grafici 14 per l'appunto...

Che approccio mi consigliate per ridurre al minimo il rischio di rallentamento dell'interfaccia grafica?

Ho pensato, un thread per ogni canale che riempie un buffer dedicato... potrebbe essere l'interfaccia che va ad interrogare questi buffer periodicamente.. diciamo ogni mezzo secondo?

Se aggiorno l'interfaccia ogni volta che la mia API per il recupero dei dati termina.. naturalmente la GUI si blocca perchè troppo occupata... che mi consigliate? :fagiano:

british
09-06-2012, 16:01
Mi sa che ti tocca andare di multithreading.
Uno o più thread che leggono/elaborano i dati e tramite signal/slot notificano la gui il cui event loop gira per i fatti suoi nel thread principale.

buon lavoro...

ciao!

marco.r
10-06-2012, 12:16
Direi uno (o piu') thread che legge i dati dai canali e li spedisce in un buffer, o meglio una coda se non sai a priori la frequenza con cui arrivano i dati.
Un thread lato GUI fa il polling ogni tot della coda e se ci sono dai nuovi aggiorna l'interfaccia.

Teo@Unix
10-06-2012, 13:33
grazie a tutti, credo farò così, vediamo se trovo difficoltà