我正在開發一個Windows服務,每15分鐘發送一次自動電子郵件。我使用定時器在固定的時間間隔(15分鐘)後再次使用該服務,但它不起作用。固定時間間隔後重新啓動Windows服務
namespace Mailer
{
public partial class Mailer : ServiceBase
{
System.Timers.Timer createOrderTimer;
public Mailer()
{
InitializeComponent();
}
protected override void OnStart(string[] args)
{
sendmail(); //function to send email.
createOrderTimer = new System.Timers.Timer();
createOrderTimer.Elapsed += new System.Timers.ElapsedEventHandler(createOrderTimer_Elapsed);
createOrderTimer.Interval = 15000;
createOrderTimer.Enabled = true;
createOrderTimer.AutoReset = true;
createOrderTimer.Start();
}
protected void createOrderTimer_Elapsed(object sender, System.Timers.ElapsedEventArgs args)
{
createOrderTimer.Stop();
ServiceController controller = new ServiceController("Mailer");
controller.Start();
}
protected void sendmail
{
//code to send email.
}
protected override void OnStop() { }
}
}
最初郵件已發送,但我希望每15分鐘發送一次郵件。
您的間隔的代碼應該是900000(MS)15分鐘。 –
@AlexFilipovici是對的,這可能有所幫助: var myTimer = =新的計時器(15 * 60 * 1000); //設置15分鐘 –
您是否考慮使用預定任務而不是服務? –