栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

带计时器的Windows服务

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

带计时器的Windows服务

Windows Service的第一种方法并不容易。

很久以前,我写了一个C#服务。

这是Service类的逻辑(经过测试,可以正常工作):

namespace MyServiceApp{    public class MyService : Servicebase    {        private System.Timers.Timer timer;        protected override void onStart(string[] args)        { this.timer = new System.Timers.Timer(30000D);  // 30000 milliseconds = 30 seconds this.timer.AutoReset = true; this.timer.Elapsed += new System.Timers.ElapsedEventHandler(this.timer_Elapsed); this.timer.Start();        }        protected override void onStop()        { this.timer.Stop(); this.timer = null;        }        private void timer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)        { MyServiceApp.ServiceWork.Main(); // my separate static method for do work        }        public MyService()        { this.ServiceName = "MyService";        }        // service entry point        static void Main()        { System.ServiceProcess.Servicebase.Run(new MyService());        }    }}

我建议您使用单独的静态方法(而不是在控制台应用程序中…直接添加对它的引用)编写您的实际服务工作,以简化调试和清理服务代码。

确保间隔足够,并仅在OnStart和OnStop替代中写入日志。

希望这可以帮助!



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/440239.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号