c# 在windows服务中 使用定时器

由于最近做自动执行的程序,开始做windows服务程序,

在windows服务中如何使用定时器的时候一直失效,

以前是直接拖入timer控件,但是不能直接运行,后来在网上找了一段程序,好使了。

 

复制代码
  //开始事件
        protected override void OnStart(string[] args)
        {
             //定时事件
            MyTimer(); 
        }

        //结束事件
        protected override void OnStop()
        {
            writeLog("服务结束时间:"  + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
        }


        //实例化System.Timers.Timer   
        private void MyTimer()
        {
            System.Timers.Timer MT = new System.Timers.Timer(30000);
            MT.Elapsed += new System.Timers.ElapsedEventHandler(MTimedEvent);
            MT.Enabled = true;

        }

        //构造System.Timers.Timer实例   间隔时间事件   
        private void MTimedEvent(object source, System.Timers.ElapsedEventArgs e)
        {

            //实现方法
            
        }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C#定时器和多线程是常用的并发编程工具。定时器用于在指定的时间间隔内执行某个任务,而多线程则允许同时执行多个任务。 在C#,可以使用Timer类来创建定时器。Timer类有两种类型:System.Timers.Timer和System.Threading.Timer。System.Timers.Timer是基于事件的定时器,适用于Windows Forms和WPF应用程序。System.Threading.Timer是基于线程池的定时器,适用于所有类型的应用程序。 下面是一个使用System.Timers.Timer的示例: ```csharp using System; using System.Timers; class Program { static void Main() { Timer timer = new Timer(1000); // 创建一个1秒的定时器 timer.Elapsed += TimerElapsed; // 绑定定时器事件 timer.Start(); // 启动定时器 Console.WriteLine("按任意键停止定时器..."); Console.ReadKey(); timer.Stop(); // 停止定时器 } static void TimerElapsed(object sender, ElapsedEventArgs e) { Console.WriteLine("定时器触发,当前时间:{0}", e.SignalTime); } } ``` 多线程在C#使用Thread类来创建和管理线程。以下是一个使用多线程的示例: ```csharp using System; using System.Threading; class Program { static void Main() { Thread thread = new Thread(DoWork); // 创建一个新线程 thread.Start(); // 启动线程 Console.WriteLine("按任意键停止线程..."); Console.ReadKey(); thread.Abort(); // 终止线程 } static void DoWork() { while (true) { Console.WriteLine("线程执行..."); Thread.Sleep(1000); // 暂停1秒 } } } ``` 以上是使用定时器和多线程的基本示例,你可以根据自己的需求进行定制和扩展。请注意,在使用多线程时要小心处理线程安全性和资源共享的问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值