【发布时间】:2015-09-23 14:07:23
【问题描述】:
我有一个在课堂上运行的计时器。我有两个按钮。 按钮 1 是启动计时器(在类内) 按钮 2 用于强制停止计时器。 单击按钮 1 并执行计算时,计时器运行平稳。 但是当我按下按钮 2 时,计时器不会强制停止并引发异常
发生了“System.NullReferenceException”类型的未处理异常“。
注意:如果我使用公共静态 System.Timers.Timer theTimer1;然后计时器可以用按钮 2 停止。但我不想使用静态,当条件为真时,它会自动停止,但停止方法不适用于按钮。 我怎样才能用按钮停止这个计时器。 谢谢。
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
Test acc = new Test();
private void button1_Click(object sender, EventArgs e)
{
acc.SerialPortEvent()
}
private void button2_Click(object sender, EventArgs e)
{
acc.stop();
}
}
class Test
{
public System.Timers.Timer theTimer1;
public void SerialPortEvent()
{
theTimer1 = new System.Timers.Timer(10000);
theTimer1.Elapsed += timer_Tick;
theTimer1.Start();
}
void timer_Tick(object sender, EventArgs e)
{
//Perform some calculations here.
if (something like counter)
{
stop();
}
}
public void stop()
{
theTimer1.Stop();
theTimer1.Dispose();
}
}
【问题讨论】:
-
什么行号抛出异常?
-
Timer1.Stop() 抛出异常;