Timer in csharp

mercoledì 28 luglio 2010 - 10.49
Tag Elenco Tags  C#  |  Windows Server 2008 R2  |  Windows Server 2008  |  Windows Server 2003  |  Windows Server 2000  |  SQL Server 2008 R2  |  SQL Server 2008  |  SQL Server 2005

Valdal14 Profilo | Junior Member

Salve Ragazzi

Vorrei realizzare un piccolo applicativo che ad una data ora mi lancia un servizio o programma e me lo stoppa sempre ad una data ora, sono riuscito a far funzionare l'apertura e la chiusura dei servizi, ma non riesco a capire bene il funzionamento dell'oggetto Timer per fare la chiamata ad un daterminato orario

Linguaggo c#

Grazie a tutti

nico839 Profilo | Senior Member

ciao,
per quello che so io, l'oggetto timer genera un evento tick ogni n.millisicondi impostati.
quindi una volta dato lo start ,ogni n milliosecondi "entra nella" :

private void timer1_Tick(object sender, EventArgs e)

e da li io controllerei l'ora per far partire o stoppare il servizio o il programma
Ciao.
Nicolas

Valdal14 Profilo | Junior Member

Grazie per la celerità della risposta, potresti farmi un esempio...

nico839 Profilo | Senior Member

allora, se non ricordo male,
-aggiungi il timer ;
-imposti la proprietà "Interval" in base ai millisecondi che ti servono(ad esempio 1000 controlla ogni secondo);
-fai partire il timer (timer.start);
nell'evento tick controlli se la data e l'ora è uguale a una di quelle che hai impostato per l'avvio e la chiusura di programmi e servizi;


timer1.Interval = 1000; timer1.Start;

private void timer1_Tick(object sender, EventArgs e) { if(DateTime.Now >= "data e ora di avvio") { avviaProgrammiEservizi();} if(DateTime.Now >= "data e ora di arresto") {arrestaProgrammiEservizi();} }

Ciao.
Nicolas

Fako Profilo | Newbie

Ciao,
aggiungo che, sen non ricordo male, il timer è di default enabled=false.Ricordati di metterlo a true.
un'altra cosa:
per fare il confronto con datetime ti converrebbe creare una variabile più o meno così:
Datetime datadacontrollare = new Datetime(giorno,mese,anno,ora,minuti,secondi)
e poi confrontarlo come nel codice postato.
Questo metodo dovrebbe evitarti problemi di regional settings
Saluti,
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5