十年河東,十年河西,莫欺少年窮
學無止境,精益求精
接着上一篇: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},執行了一次!"); } } } }
效果圖如下:
@博客園您好