重载OnStart()方法,参考C#写Windows服务
我重写的OnStart()方法,这里面已经指定每隔两小时执行一次了,但是第一次执行它就会隔两小时。。。
protected override void OnStart(string[] args) { ServiceController serviceController = new ServiceController("AeGISSMSInfoService"); serviceController.Start(); IsStart = "1"; // TODO: 在此处添加代码以启动服务。 timer = new System.Timers.Timer(); //间隔10秒 timer.AutoReset = true; timer.Interval = 2*3600*1000; //10000; // //24*3600*1000; //设置计时器事件间隔执行时间为2小时 timer.Enabled = false; //执行一次 timer.Elapsed += new ElapsedEventHandler(GrabXMLData); timer.Start(); WriteLog(string.Format( "=====================================→启动舆情系统xml接口数据抓取服务({0})←=====================================\r\n", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"))); }
@以便以谢: 建议试试System.Threading.Timer,将其构造函数中的dueTime参数设为0,一启动就会执行。
@dudu: 好的,我试试,dudu出马,必属精品~
你确定不是在逗我吗?你的Windows Service 程序是自己写的吧?都已经知道怎么两个小时候执行,
居然不知道怎么启动时执行,这个你去洗洗脸,洗洗脚,放松一下应该就知道了。
就像我把火箭送上天却不知如何造火箭一样~
@以便以谢:
土方法:加一句 GrabXMLData在onStart里面就行了。
不土的方法,用线程执行一次GrabXMLData就行了啊。
你确定不是编程编晕了吗?
@爱编程的大叔: 你确定你看完了?- -!
@以便以谢: 确实到现在我也没看懂,你们都太厉害了。要不你帮我解释一下?
楼上正解。