十年河东,十年河西,莫欺少年穷
学无止境,精益求精
接着上一篇: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},执行了一次!"); } } } }
效果图如下:
@博客园您好