十年河东,十年河西,莫欺少年穷
学无止境,精益求精
接着上一篇:C# 创建windows服务 并通过winform 程序控制服务的 安装 启动 停止 卸载
本节来看看如何实现定时执行windows服务,其实也没什么好说的,时间紧急,主要就是代码,如下:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.ServiceProcess;
using System.Text;
using System.Threading.Tasks;
namespace WindowsServices
{
public partial class MyService : ServiceBase
{
System.Timers.Timer timer1; //计时器
string filePath = @"D:\MyServiceLog.txt";
public MyService()
{
InitializeComponent();
}
protected override void OnStart(string[] args)
{
using (FileStream stream = new FileStream(filePath, FileMode.Append))
using (StreamWriter writer = new StreamWriter(stream))
{
writer.WriteLine($"{DateTime.Now},服务启动!");
}
timer1 = new System.Timers.Timer();
timer1.Interval = 3000; //设置计时器事件间隔执行时间 每隔三秒执行一次
timer1.Elapsed += new System.Timers.ElapsedEventHandler(timer1_Elapsed);
timer1.Enabled = true;
}
protected override void OnPause()
{
//服务暂停执行代码
using (FileStream stream = new FileStream(filePath, FileMode.Append))
using (StreamWriter writer = new StreamWriter(stream))
{
writer.WriteLine($"{DateTime.Now},服务暂停!");
}
//禁用定时器
timer1.Enabled = false;
}
protected override void OnContinue()
{
//服务恢复执行代码
using (FileStream stream = new FileStream(filePath, FileMode.Append))
using (StreamWriter writer = new StreamWriter(stream))
{
writer.WriteLine($"{DateTime.Now},服务恢复!");
}
//启动定时器
timer1.Enabled = true;
}
protected override void OnStop()
{
using (FileStream stream = new FileStream(filePath, FileMode.Append))
using (StreamWriter writer = new StreamWriter(stream))
{
writer.WriteLine($"{DateTime.Now},服务停止!");
}
//禁用定时器
timer1.Enabled = false;
}
private void timer1_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
{
using (FileStream stream = new FileStream(filePath, FileMode.Append))
using (StreamWriter writer = new StreamWriter(stream))
{
writer.WriteLine($"{DateTime.Now},执行了一次!");
}
}
}
}
效果图如下:

@博客园您好
来源:oschina
链接:https://my.oschina.net/u/4383327/blog/4520579