这是我的代码,用于在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;
}
}
答案 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