2011-07-26 60 views

回答

1

事情与此类似,使用计时器:

protected override void OnStart(string[] args) 
{ 
     var timer = new System.Timers.Timer(); 
     timer.Elapsed += new ElapsedEventHandler(DoSomething); 
     //do something every 30 seconds 
     timer.Interval = TimeSpan.FromSeconds(30).TotalMilliseconds; 
     timer.Start(); 
} 

private void DoSomething(object sender, ElapsedEventArgs e) 
{ 
    //Do your timed event here... 
} 
+0

我承认你更明确的答案。 –

+0

@brendan:我得到了错误不能隐式地将类型'void'转换为'System.Timers.ElapsedEventHandler'在第四行 – MayureshP

+0

right,sorry,fixed that - Elapsed必须是新的ElapsedEvenHandler – brendan

0

a timer

+0

实际上是的,但从Windows服务 – MayureshP

+0

请参阅@ brendan的答案为一个Windows服务示例 –

+0

可能是我的Web应用程序的一部分?请指导 – MayureshP

0

看一看Quartz.NET。

“Quartz.NET是一个全功能的开源作业调度系统,可用于从最小的应用程序到大型企业系统。”

我已经使用它,当我需要某种类型的调度。

+0

不确定这是适用。它可能会减少/消除对Windows服务的需求,但我怀疑它可能用于触发Windows服务本身内的任何内容。 –

+0

Quartz.net调度器只是一个库,它可以很容易地运行作业,作业是应用程序内或dll内的一段代码。该计划具有先进的计时功能,例如从下午12点到上午6点的第一天运行,以及其他不错的功能。这篇文章可能有点矫枉过正,但一些石英特征可能会有所帮助。 – Jethro

+0

听起来很整齐。我想我应该在发表评论之前完成我的研究,只是假设它将比来自所提供报价的图书馆更像是一个“系统”。 –