Il frammento di codice riportato di seguito illustra una tecnica, in ambiente C# e Windows Forms, per eseguire una funzione a intervalli regolari.
Le operazioni vengono gestite tramite la classe Timer di Windows Forms che, una volta configurata, genera periodicamente l'evento Tick, all'interno del quale è possibile richiamare la funzione desiderata.
Di seguito viene riportato un esempio per illustrare questa tecnica.
Dichiarazione del Timer
A livello di form, dichiariamo un oggetto della classe Timer e una variabile booleana che utilizzeremo per evitare che la funzione venga eseguita nuovamente mentre è ancora in corso un'esecuzione precedente.
C#
System.Windows.Forms.Timer timerRipeti;
bool inEsecuzione
= false;
Gestione dell'evento Tick
Creiamo quindi un gestore per l'evento Tick del Timer.
C#
private void TimerRipeti_Tick(object sender, EventArgs e)
{
if
(inEsecuzione)
return;
try
{
inEsecuzione = true;
NomeFunzione();
}
finally
{
inEsecuzione = false;
}
}
La variabile inEsecuzione permette di verificare se la funzione è già in esecuzione. In questo modo, nel caso in cui venga generato un nuovo evento Tick mentre l'operazione precedente non è ancora terminata, la nuova esecuzione viene ignorata.
Configurazione del Timer
Nell'evento Load della form inizializziamo il Timer, colleghiamo il gestore dell'evento Tick e impostiamo l'intervallo di esecuzione.
Nell'esempio seguente la funzione verrà richiamata ogni minuto:
C#
timerRipeti = new
System.Windows.Forms.Timer();
timerRipeti.Tick += TimerRipeti_Tick;
int minuti = 1; // minuti
timerRipeti.Interval = minuti * 60 * 1000;
Infine, per avviare effettivamente il timer, è necessario chiamare il metodo Start():
timerRipeti.Start();
Le opere pubblicate in questo blog sono sotto la licenza Creative Commons. Attribuzione- No commerciale e no derivate.
Nessun commento:
Posta un commento