从火中的OnStart窗口服务立即timer_elapsed

我使用一个System.Timers.Timer ,我有一个像我下面的代码OnStart方法在C#窗口服务。

timer = new Timer(); timer.Elapsed += timer_Elapsed; timer.Enabled = true; timer.Interval = 3600000; timer.Start();

这将导致在代码timer_Elapsed可以每隔一小时从一小时开始后我启动该服务执行。 有没有办法让在我启动该服务,然后每隔一小时以后它的点执行?

通过调用的方法timer_Elapsed时间过长运行直接从调用它OnStart

--------------解决方案-------------

刚开始一个线程池线程调用函数的工人一样,定时器一样。 喜欢这个:

timer.Elapsed += timer_Elapsed;
ThreadPool.QueueUserWorkItem((_) => DoWork());
...

void timer_Elapsed(object sender, System.Timers.ElapsedEventArgs e) {
DoWork();
}

void DoWork() {
// etc...
}

因为这种类型的仅仅是线程定时器的包装使用System.Threading.Timer类,而不是System.Timers.Timer。

这也符合您的要求。

System.Threading.Timer timer =
new System.Threading.Timer(this.DoWork, this, 0, 36000);

下面是详细信息。

使用System.Timers.Timer的自动复位财产,并将其设置值“真”。 无需使用timer.Start(),因为它做同样的工作timer.Enabled =真;

timer = new Timer();
timer.Elapsed += timer_Elapsed;
timer.Enabled = true;
timer.Interval = 3600000;
timer.AutoReset = true;

自动复位= TRUE将设置指示计时器应该每次提高所经过的事件在指定的时间间隔过后的值。

分类:C# 时间:2012-01-01 人气:0
本文关键词: 窗口服务,定时
分享到:

相关文章

  • 在预定的窗口服务一致的FTP超时 2012-03-15

    我有ftp的问题,在一个窗口服务. 我已经通过FTP定时作业来发送的文件. 在一段时间后我遇到超时(频率一周一次或者每月一次),并继续直到我重新启动我的Windows服务. System.Net.WebException:操作已超时. 我处理异常,并在最后我关闭所有打开的FTP会话. try { string uri = String.Format("ftp://{0}/{1}/{2}", server, download, file); Uri serverUri = new Uri

  • 我怎样才能有效地设置system.timer运行我的窗口服务每季度(12周一次)? 2015-02-27

    我怎样才能在12周内运行我的窗口服务一次? 我使用它定时器和我分配定时器的时间间隔为(12 * 7 * 24 * 60 * 60 * 1000毫秒)来实现. 是否有任何问题,如果我使用的计时器对于这样的持续时间(12 * 7 * 24 * 60 * 60 * 1000毫秒). 如果导致问题,请建议在每12周一次运行我的窗口服务的另一种方法. --------------解决方案------------- 我认为更好的方法将比较日期. 创建与一个小时的时间间隔定时Windows服务. 在服务的的O

  • 计划任务或窗口服务 2012-01-04

    我的团队是有一个辩论,这是更好:Windows服务或计划任务. 我们有一个专门为正在运行的作业,目前他们所有计划任务的服务器. 有些工作需要的文件,重命名它们并将它们放置在网络上的其他目录. 其他工作中提取数据的SQL,修改,和其他地方发货. 其他工作的FTP文件了. 有很多不同的,但一切的一切,他们是相当简单. 我偏让每个这些运行作为Windows服务,而不是预定的任务,因为它是如此更容易监视Windows服务,而不是计划的任务. 一些截然相反. 最后,我们都没有那么多的经验,提供了两种方法之

  • 如何从一个窗口服务启动浏览器 2012-01-15

    我需要创建时launced打开特定URL的窗口服务. 我所做的是通过添加以下行来覆盖在onStart()方法: 保护覆盖无效的OnStart(字串[] args) { eventLog1.WriteEntry("Browser must start " + DateTime.Now); string targetURL = "http://www.mysite.com"; System.Diagnostics.Process.Start(targetURL); }

  • 是否有被设计崩溃任何窗口服务? 我需要一个测试恢复选项。 2012-01-17

    你好, 我找的,旨在崩溃Windows服务. 我想使用这个服务,以确保按计划我的恢复选项将被执行. 我想启动此服务,有它崩溃/失败,再观察恢复选项的行为. 提前致谢! --------------解决方案------------- 你好Clarkington, 请参考下面的文章有意蓝屏在Windows 7机器<即使它说,这是针对Windows Server 2008> 如何生成一个内核或Windows Server 2008的完全内存转储文件 最好的祝福, Matthew_Ha 你好, 我期待

  • 如何设置哈德逊1.398窗口服务 2012-01-22

    我只是在寻找哈德森前两天. 让我很新手. 我下载哈德森1.398,搜索有关Windows服务. 但在管理哈德森有好好尝试一下已安装像其它版本的Windows服务. 我怎样才能使它在hudon 1.398. 有任何好的教程,简单易懂,充满完整的教程.. 谢谢. --------------解决方案------------- 从维基:安装哈德森作为Windows服务. 确保.NET 2.0安装(在服务器上,我相信). OWH我看到的问题. 因为我使用Tomcat来提取的hudson.war. 而To

  • 我可以使用WCF的2间窗口服务通信(发送消息)? 2012-02-16

    我可以使用WCF的2间窗口服务进行通信? 如果是,如何? --------------解决方案------------- 当然; 你通常会定义一个服务合同(接口),这两项服务将用来交换消息; 那么Windows服务将举办一个WCF服务(在此情况下,其中两个服务在同一台机器上,你会经常使用仅本地结合,如命名管道). 然后第二个双赢的服务可以作为对其他Windows服务WCF服务的客户端. 是否有你所面临的具体问题? 这取决于你想传递消息的类型. 有很多可能的解决方案: MSMQ消息 复式合同 命名

  • WCF窗口服务交互 2012-02-21

    我在我的主机WCF服务Windows服务. 什么是控制通过WCF服务的Windows服务的最佳方法? 我已经创造了WCF服务的接口,但我不知道如何与Windows服务的类别和功能的交互. --------------解决方案------------- 只是为了检查我正确地理解你的问题 - 你想运行一个WCF服务,让您创建一个Windows服务来承载它,你希望你的桌面客户端,以便能够控制的窗口服务(这是托管的WCF服务)通过谈话WCF服务? 如果是这样的话,它是什么,你想要做的Windows服务?

  • 使用CC.NET和MSBUILD安装窗口服务问题 2012-02-23

    我试图安装使用的MSBuild和CCNET一个窗口服务. 我使用的MSBuild扩展包WindowsService任务来安装并启动Windows服务为一体的自动构建的一部分. 该脚本节这个样子的 <!--install service--> <MSBuild.ExtensionPack.Computer.WindowsService TaskAction="Install" ServiceName="$(PrServiceName)" Servic

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 0.500 (s). 10 q(s)