Oppure

Loading
26/04/17 13:18
Poggi Marco
Buon giorno!

Il mio programma cronometro ( pierotofy.it/pages/sorgenti/dettagli/19451-Cronometro/ ) è in grado di misurare intervalli di tempo, fornire intertempi ecc. in tempo reale.
Per tale scopo ho utilizzato i thread in questo modo:

def mostraTempo()   
		if @misura.stato
			@labCrono['text']=@misura.comunica()
			sleep(0.07)
			Thread.new{mostraTempo}
		end
	end
Dove @misura è un' istanza della classe Tempistica.
In pratica in una label viene aggiornata ogni 0.07 il nuovo intertempo tramite la funzione @misura.comunica ( ), quindi richiamo il metodo mostraTempo con un nuovo thread.
Purtroppo ho notato che questo meccanismo assorbe parecchia memoria, senza rilasciarla.
Come posso ottimizzare il processo ?
aaa
27/04/17 19:47
pierotofy
Beh si, se vedi hai effettivamente creato un loop infinito :)

Il tuo scopo e' creare un singolo thread che aggiorna l'interfaccia, qualcosa come:

# Nel costruttore? Oppure da qualche altra parte dove inizializzi l'interfaccia
Thread.new {
  mostraTempo
}

def mostraTempo()
  while true
    sleep(0.07)
    # qui aggiorna il tuo @labCrono['text']
  end
end
Il mio blog: piero.dev
28/04/17 11:46
Poggi Marco
Grazie per il suggerimento ! Ora funziona perfettamente.
aaa