19/02/2019, 23:54
(Questo messaggio è stato modificato l'ultima volta il: 21/02/2019, 00:57 da Zzed.)
Buongiorno a tutti,
Vi spiego la mia necessità con un esempio:
Il programma pippo.py controlla se si verifica una condizione, quando questa è soddisfatta e per il tempo in cui rimane soddisfatta, entra in un ciclo in cui controlla se c'è un input da parte dell'utente.
Fin qui, ok.
Ora vorrei che senza interrompere l'esecuzione del programma principale (principalmente il controllo del verificarsi della condizione) ci sia un processo che conti tot secondi dopo l'ultimo input, e, trascorso questo tempo, esegua una azione.
Avete presente il salvaschermo? un programma controlla l'input da tastiera, e conta tot secondi dall' ultimo tasto premuto. trascorso il tempo impostato, lancia il salvaschermo. Ma a ogni nuova pressione, fa ripartire il conto da zero.
Scritto così pare abbastanza banale, ma tradotto in codice mi sono un po' incartato. Volendo tenerli come processi separati, ma il primo si ferma fino a che il secondo non ha concluso.. Se richiamo una funzione o un loop di attesa, il programma non prosegue fino a che questo non viene eseguito.
Ho in mente una decina di modi diversi, ma quale è il più conveniente per farlo? Non vorrei dover usare il multiprocessing per questo (anche perchè gli esempio che ho sbirciato di corsa in rete mi paiono tutt'altro che cristallini)..
Vi spiego la mia necessità con un esempio:
Il programma pippo.py controlla se si verifica una condizione, quando questa è soddisfatta e per il tempo in cui rimane soddisfatta, entra in un ciclo in cui controlla se c'è un input da parte dell'utente.
Fin qui, ok.
Ora vorrei che senza interrompere l'esecuzione del programma principale (principalmente il controllo del verificarsi della condizione) ci sia un processo che conti tot secondi dopo l'ultimo input, e, trascorso questo tempo, esegua una azione.
Avete presente il salvaschermo? un programma controlla l'input da tastiera, e conta tot secondi dall' ultimo tasto premuto. trascorso il tempo impostato, lancia il salvaschermo. Ma a ogni nuova pressione, fa ripartire il conto da zero.
Scritto così pare abbastanza banale, ma tradotto in codice mi sono un po' incartato. Volendo tenerli come processi separati, ma il primo si ferma fino a che il secondo non ha concluso.. Se richiamo una funzione o un loop di attesa, il programma non prosegue fino a che questo non viene eseguito.
Ho in mente una decina di modi diversi, ma quale è il più conveniente per farlo? Non vorrei dover usare il multiprocessing per questo (anche perchè gli esempio che ho sbirciato di corsa in rete mi paiono tutt'altro che cristallini)..