0
我在用戶按下按鈕後每3秒發送一次命令給控制器時使用計時器。用戶再次按下相同的按鈕後,定時器應停止。但在我的情況下,計時器不會停止。我使用以下方式使用計時器。定時器不會停止c#
private void autoModeTempBtn_Click(object sender, EventArgs e)
{
System.Timers.Timer tempTimer = new System.Timers.Timer(3000);
tempTimer.SynchronizingObject = this;
tempTimer.AutoReset = true;
if (autoModeTempBtn.Text == "Get Temperature Auto Mode")
{
autoModeTempBtn.Text = "hello";
tempTimer.Elapsed += new System.Timers.ElapsedEventHandler(OnTemperatureEvent);
tempTimer.Enabled = true;
}
else /*user presses button second time */
{
tempTimer.Stop();
tempTimer.AutoReset = false;
tempTimer.Enabled = false;
autoModeTempBtn.Text = "Get Temperature Auto Mode";
}
}
private void OnTemperatureEvent(object source, System.Timers.ElapsedEventArgs e)
{
//do something
}
我在哪裏犯錯?
你不可能停止計時,你不能到計時器對象的引用,因爲它是你的Click事件處理程序的局部變量。所以它只是在滴答滴答,滴答滴答。把它變成你班上的一個領域。 –