0
我有一個在大約10分鐘內執行的方法。它本身就很好。我需要使用Windows服務每小時啓動一次這種方法(這是強制性的)。所以我通過一些例子(只是一個援引開始)寫我的服務:如何從Windows服務啓動計時器的方法?
partial class ServiceWSDRun : ServiceBase
{
protected override void OnStart(string[] args)
{
Thread t = new Thread(WebServiceDownload.MainProgram.Execute);
t.Start();
}
}
現在,當我安裝它,它推出我的方法在一個新的線程,但這個線程似乎與的OnStart結束() - 它實際上記錄了我方法開始時的一些信息。它爲什麼會停止,我應該怎麼做?
而且我想我到底應該有這樣的事情:
partial class ServiceWSDRun : ServiceBase
{
System.Timers.Timer timer = null;
protected override void OnStart(string[] args)
{
Thread t = new Thread(WebServiceDownload.MainProgram.Execute);
t.Start();
timer = new System.Timers.Timer();
timer.Interval = 60 * 60 * 1000; // 1 hour
timer.Elapsed += new System.Timers.ElapsedEventHandler(OnTimer);
timer.Enabled = true;
}
public void OnTimer(object sender, System.Timers.ElapsedEventArgs args)
{
WebServiceDownload.MainProgram.Execute();
}
protected override void OnStop()
{
timer.Enabled = false;
}
}
我如何工作的呢?請記住,該方法需要約10分鐘才能執行。