On 1 Mag, 23:38, Y3s katamail.com> wrote:
> Cioe', ad esempio, da aggiorna_totale_complessivo chiami metodi sui widget
> grafici? Se e' cosi', e' errato. Non puoi chiamare metodi su oggetti
> grafici di un altro thread. O meglio, puoi, ma quel che succede e'
> imprevedibile. O usi una queue oppure (metodo preferibile) scateni dal tuo
> thread secondario un evento che verra' intercettato dal main thread. Ci
> sono molti esempi di entrambe le cose in rete.
La tua osservazione è giusta. Sto cercando di aggiornare dei
componenti grafici
su un thread secondario. Grazie dei consigli, penso che opterò per la
seconda soluzione
che mi pare più corretta.
>> Questa parte qua l'ho presa a ispirazione leggendo un esempio simile
>> presente sulla libreria di psycopg2, che si chiama "notify.py". C'è una
>> parte che non mi è chiara. Questo thread dovrebbe durare finchè
>> l'applicazione non viene chiusa, quindi non vorrei nessun timeout, come
>> faccio a fare in modo che ciò avvenga ?
>
> Cosa significa?
>
In questa riga:
if select.select([curs],[],[],50)==([],[],[]):
E' impostato un timeout di 50 secondi, scaduto il quale il listener
non intercetta più i miei notify.
Vorrei semplicemente fare in modo il listener resti sempre attivo
finchè l'applicazione non viene chiusa.
Come posso fare ?
>
> Ecco, CVD. Mai chiamare metodi di oggetti grafici da thread secondari. Che
> io sappia non e' supportato da nessun toolkit, sicuramente non da wx...
>
Grazie mille cercherò di informarmi in merito,
Emanuele