在定时器启动之前执行一个功能

时间:2014-06-30 10:19:08

标签: c# date datetime timer

我有点新了。我有窗口服务,其中我有一个定时器,它在1分钟间隔后执行一个功能。我想在定时器启动之前第一次执行功能,然后在每个定时器间隔后执行... < / p>

这是我的代码:

public partial class ASMSFetchService : ServiceBase
{
    System.Timers.Timer updateAutoSMSTimer;

    public ASMSFetchService()
    {
        InitializeComponent();

    }

    protected override void OnStart(string[] args)
    {
        updateAutoSMSTimer = new System.Timers.Timer(1 * 60 * 1000);
        updateAutoSMSTimer.Elapsed += new System.Timers.ElapsedEventHandler(Slots);
        updateAutoSMSTimer.Enabled = true;
        updateAutoSMSTimer.AutoReset = true;
        updateAutoSMSTimer.Start();
     }

    private void Slots(object sender, ElapsedEventArgs e)
    {method1();}

    private void method1()
    { //SomeOpeartion }
}

当1个定时器间隔完成时,该函数正在执行...我想在定时器启动之前调用method1(),然后在每个定时器间隔之后调用....

我已经尝试将方法放在Start()和构造函数()中..但它不起作用......我不确定..但是可以吗???

任何建议都会有帮助

2 个答案:

答案 0 :(得分:3)

  

我想在定时器启动之前调用method1(),然后在每个定时器间隔之后调用

然后在启动计时器之前调用它

method1();
updateAutoSMSTimer.Start();

答案 1 :(得分:0)

尝试在开始之前调用:

 protected override void OnStart(string[] args)
        {
            updateAutoSMSTimer = new System.Timers.Timer(1 * 60 * 1000);
            updateAutoSMSTimer.Elapsed += new System.Timers.ElapsedEventHandler(Slots);
            updateAutoSMSTimer.Enabled = true;
            updateAutoSMSTimer.AutoReset = true;
            method1();
            updateAutoSMSTimer.Start();
         }