我寫了一個Windows服務來叫我的類庫,每10分鐘間隔,它在啓動時或重新啓動。一旦工作完成它想重新再每10組分鐘的運行工作正常這根本就沒有發生。不知道什麼是錯過的,有人請確定正確的方式。的Windows服務沒有啓動,根據間隔時間
這裏是我的代碼
public partial class Service1 : ServiceBase
{
private Timer _timer;
private DateTime _lastRun = DateTime.Now;
public Service1()
{
InitializeComponent();
}
protected override void OnStart(string[] args)
{
log4net.Config.XmlConfigurator.Configure();
_timer = new Timer(10 * 60 * 1000); // every 10 minutes
_timer.Elapsed += new System.Timers.ElapsedEventHandler(timer_Elapsed);
Shell Distribute= new Shell();
Distribute.Distribute();
}
protected override void OnStop()
{
this.ExitCode = 0;
base.OnStop();
}
private void timer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
{
//if (_lastRun.Date < DateTime.Now.Date)
//{
_timer.Stop();
_lastRun = DateTime.Now;
_timer.Start();
//}
}
}
}
日期比較是最可能的原因。但是,Timer類在觸發Elapsed事件時會吞下異常。您*必須*使用try/catch來診斷代碼中的任何故障。不要跳過它,如果你這樣做的話,異常是不可想象的。 – 2012-04-03 13:52:59
@ HansPassant,即使我評論如果條件語句仍然是其無法運行該服務,每10分鐘間隔 – Usher 2012-04-05 01:36:26