如何在Windows服务中设置每日的计时器间隔 [英] how to set timer interval for daily in windows service

查看:76
本文介绍了如何在Windows服务中设置每日的计时器间隔的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我创建了用于自动邮件触发的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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆