如何在Windows服务中设置每日的计时器间隔 [英] how to set timer interval for daily in windows service
问题描述
我创建了用于自动邮件触发的Windows服务,最初我每隔一分钟设置一次计时器间隔,在我的邮件部分工作正常的每一分钟触发已经过去的事件。
但我希望邮件每天都会触发,因为我设定的定时器间隔是1000 * 60 * 60 * 24,但事件没有提出。
以下是代码:
protected override void OnStart(string [] args)
{
TraceService(开始服务);
//处理已完成事件
计时器。 Elapsed + = new ElapsedEventHandler(OnElapsedTime);
//此语句用于将间隔设置为1分钟(= 60,000毫秒)
// timer = new System.Timers.Timer();
timer.Interval = 1000 * 60 * 60 * 24;
/ /启用计时器
timer.Enabled = true;
timer.AutoReset = true;
timer.Start();
}
private void TraceService(字符串内容)
{
//设置文件流
FileStream fs = new FileStream(@d:\ScheduledService.txt,FileMode.OpenOrCreate,FileAccess.Write);
//设置一个用于添加文本的编写器
StreamWriter sw = new StreamWriter(fs);
//找到底层文件流的结尾
sw.BaseStream.Seek(0,SeekOrigin.End);
//添加文本
sw.WriteLine(内容);
//将文本添加到基础文件流
sw.Flush();
//关闭作家
sw.Close();
}
I created windows service for auto mail triggering, Initially i set timer interval for every one minute, On elapsed event is triggered for every minute my mail part also working fine.
But i want the mail will trigger every day, for that i set timer interval is 1000*60*60*24, but the event not raised.
Below is the code:
protected override void OnStart(string[] args)
{
TraceService("start service");
//handle Elapsed event
timer.Elapsed += new ElapsedEventHandler(OnElapsedTime);
//This statement is used to set interval to 1 minute (= 60,000 milliseconds)
// timer = new System.Timers.Timer();
timer.Interval = 1000*60*60*24;
//enabling the timer
timer.Enabled = true;
timer.AutoReset = true;
timer.Start();
}
private void TraceService(string content)
{
//set up a filestream
FileStream fs = new FileStream(@"d:\ScheduledService.txt", FileMode.OpenOrCreate, FileAccess.Write);
//set up a streamwriter for adding text
StreamWriter sw = new StreamWriter(fs);
//find the end of the underlying filestream
sw.BaseStream.Seek(0, SeekOrigin.End);
//add the text
sw.WriteLine(content);
//add the text to the underlying filestream
sw.Flush();
//close the writer
sw.Close();
}
推荐答案
尝试使用cron,这是c#中的一个实现:在C#中实现一个小型Cron服务 [ ^ ]
Try using cron instead, here is an implementation in c# : Implementing a small Cron service in C#[^]
这篇关于如何在Windows服务中设置每日的计时器间隔的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!