C# windows服务定时执行

十年河东,十年河西,莫欺少年穷

学无止境,精益求精

接着上一篇: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},执行了一次!");
            }
        }
    }
}

效果图如下:

 @博客园您好

原文地址:https://www.cnblogs.com/chenwolong/p/13536247.html