单击按钮时停止计时器已完成事件

时间:2014-01-16 14:10:07

标签: c# timer

这是我的代码,用于在1分钟后调用一个事件,我有两个按钮用于启动并在每1分钟后调用经过的事件,第二个按钮用于停止此计时器已用事件的触发。

启动Button evnt代码

 protected void Button1_Click(object sender, EventArgs e)
        {
        System.Timers.Timer _timer;
                    _timer = new System.Timers.Timer(10000);
                    _timer.Elapsed += new ElapsedEventHandler(_timer_Elapsed);
        _timer.Enabled = true;
    }

计时器已用事件

     static void _timer_Elapsed(object sender, ElapsedEventArgs e)
        {
//It works fine it fires after every minute
    }

停止按钮事件代码

  protected void Button2_Click(object sender, EventArgs e)
        {
//What to do here??
    }

我想停止此计时器活动以停止此按钮单击evnent。应该在这里编码什么?

我的整个代码是

public partial class TimerScheduler : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {

    }
    static void _timer_Elapsed(object sender, ElapsedEventArgs e)
    {

    }
    System.Timers.Timer _timer = new System.Timers.Timer(10000);
    //_timer = ;
    protected void Button1_Click(object sender, EventArgs e)
    {
        _timer.Elapsed += new ElapsedEventHandler(_timer_Elapsed);
        _timer.Enabled = true;
    }
    protected void Button2_Click(object sender, EventArgs e)
    {
        _timer.Stop();
        _timer.Enabled = false;
    }
}

1 个答案:

答案 0 :(得分:1)

解决方案1:您可以调用Stop()的{​​{1}}方法。

Timer

解决方案2 :您可以将_timer.Stop(); 的{​​{1}}属性设置为Enabled

Timer

注意:我建议调用false方法。

解决方案3:

您收到_timer.Enabled=false; 例外,因为您没有通过点击Stop()初始化您的计时器。因此,除非您点击Object reference not set to an instance of an object button1点击事件处理程序包含初始化代码以使您的现有代码生效,否则不应点击button2直至

我建议您将button1初始化语句移到button1点击事件处理程序之外。

试试这个:

timer