[Python] Eseguire un'azione ad un intervallo regolabile

Manlio Perillo manlio_perillo a libero.it
Dom 22 Ott 2006 20:07:39 CEST


Luca Marturana ha scritto:
> Salve a tutti,
> 
> In un mio software devo eseguire una funzione ad intervalli di tempo
> regolari (nell'ordine dei secondi, tipo ogni secondo o ogni 5 secondi),
> inoltre vorrei che l'utente possa facilmente modificare il timeout
> (modificando una chiave di gconf), fino ad ora ho utilizzato gobject in
> questa maniera:
> 
> gobject.timeout_add(2000,self.on_timeout, self)
> 
> Leggendo la documentazione perņ ho notato che questa funzione non
> permette di modificare il valore del timeout.
> 

Il trucco č di cancellare il timeout e crearne un altro.

In pratica:

def on_some_user_action(self, timeout):
   # rimuove il timeout corrente
   gobject.source_remove(self.timeout_id)

   # crea un nuovo timeout
   self.timeout_id = gobject.timeout_add(timeout, self.on_timeout, self)


Il tutto non testato.



Saluti  Manlio Perillo


Maggiori informazioni sulla lista Python