【发布时间】:2014-03-18 17:59:40
【问题描述】:
这是我在 1 分钟后调用事件的代码,我有两个按钮,一个用于开始,每 1 分钟调用一次已用事件,第二个按钮用于停止此计时器已用事件触发。
启动按钮事件代码是
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??
}
我想停止此计时器活动以在此按钮单击事件上停止。这里应该是什么代码??
我的整个代码是
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;
}
}
【问题讨论】:
-
_timer.Stop(),不是吗? -
_timer.Stop() 或 _timer.Enabled=false
-
我试过这个 System.Timers.Timer _timer; protected void Button1_Click(object sender, EventArgs e) { _timer = new System.Timers.Timer(10000); _timer.Elapsed += new ElapsedEventHandler(_timer_Elapsed); _timer.Enabled = true; } protected void Button2_Click(object sender, EventArgs e) { _timer.Stop();当我单击停止按钮时,对象引用未设置为对象的实例。 :(
-
_timer 为 null 会引发此异常
-
让 _timer 成为 Click 事件处理程序的局部变量是明显的错误。将其移出方法,使其成为您的类的字段。