1

タイマーが終了する前にタイマーを削除しようとしています。ボタン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();
}
4

2 に答える 2

4

これを試して:

 private void button2_Click(object sender, EventArgs e)
    {
      timers[launchTime].Enabled = false;
      timers.Remove(launchTime);
    }
于 2013-03-19T05:24:13.553 に答える
0

タイマーをnullに設定する必要があります。

于 2013-03-19T05:23:40.213 に答える