|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Mar 2009
Messaggi: 753
|
[C++ / Qt] Heavy data streams
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? ![]() |
![]() |
![]() |
![]() |
#2 |
Member
Iscritto dal: Sep 2008
Città: Milano
Messaggi: 126
|
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! |
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Dec 2005
Città: Istanbul
Messaggi: 1817
|
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.
__________________
One of the conclusions that we reached was that the "object" need not be a primitive notion in a programming language; one can build objects and their behaviour from little more than assignable value cells and good old lambda expressions. —Guy Steele |
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Mar 2009
Messaggi: 753
|
grazie a tutti, credo farò così, vediamo se trovo difficoltà
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 23:00.