タイマーが終了する前にタイマーを削除しようとしています。ボタン1をクリックするとタイマーが開始しますが、タイマーが経過する前にボタン2をクリックすると、ティックイベントからメッセージが表示されます。
辞書のキーとして日付を使用する複数のタイマーが必要です。
誰かが私がここで間違っていることを教えてもらえますか?
private Dictionary<string, System.Timers.Timer> timers = new Dictionary<string, System.Timers.Timer>();
private void button1_Click(object sender, EventArgs e)
{
string dateTimeString = "19/03/2013 05:11:23"
var myTimer = new System.Timers.Timer();
myTimer.Interval = 30000;
myTimer.Elapsed += new ElapsedEventHandler(MyTimer_Tick);
myTimer.Enabled = true;
timers.Add(dateTimeString, myTimer);
}
private void button2_Click(object sender, EventArgs e)
{
timers.Remove("19/03/2013 05:11:23");
}
public void MyTimer_Tick(object sender, EventArgs e)
{
MessageBox.Show("Timer tick");
((System.Timers.Timer)sender).Dispose();
}