2016-06-27 12 views
0

Windowsサービスを作成して正常にインストールしました。日付と時刻が一致していれば、メールを送信するためのコードを作成しました。1時間ごとにWindowsサービスを実行するにはどうすればよいですか?

今、1時間ごとにそのサービスを実行して、日付と時刻が一致しているかどうかをチェックします。

どうすればいいですか?

助けてください。

+0

Windowsサービスは常時稼働しています。時間がまだ達していない場合は、日付を確認したり、1分ほど待ったりする必要があります。 – Martheen

+0

定期的に実行される[Windowsサービス]の重複している可能性があります(http://stackoverflow.com/questions/1498498/windows-service-that-runs-periodically) –

答えて

7

Windowsサービスは継続的に実行されるはずです - 1時間に1回 "起床"するだけでいいのであれば、代わりにスケジュールされたタスクにするのはなぜですか?スケジュールされたタスクで


はあなたが必要とするすべてはあなたのコードをコンパイルすることで、その後、あなたは、「タスクの作成」、あなたのexeファイルにそれを指示して実行するときに設定することができます。 enter image description here

+1

https://technet.microsoft.com/en-us/library /cc748993(v=ws.11).aspx –

1

System.Timers.Timerには、System.Threading.Timerが軽量タイマーである、より多くのオプションがあります。私は、電子メールや間隔はあなたのrequirmentに従ってmilisecond

である送信でSystem.Timers.Timer

はあなたを実行したいどのくらいの時間間隔にtmrExecutor.Intervalを設定し使用することをお勧めいたしますでしょう一人一人のためにあります時間は3600000ミリ秒です。

Timer tmrExecutor = new Timer(); 

protected override void OnStart(string[] args) 
{ 
    tmrExecutor.Elapsed += new ElapsedEventHandler(tmrExecutor_Elapsed); // adding Event 
    tmrExecutor.Interval = 3600000; // Set your time here 
    tmrExecutor.Enabled = true; 
    tmrExecutor.Start(); 
} 

private void tmrExecutor_Elapsed(object sender, System.Timers.ElapsedEventArgs e) 
{ 
    //Do your Sending email work here 
} 

protected override void OnStop() 
{ 
    tmrExecutor.Enabled = false; 
} 
関連する問題