私は単純なカウントダウンタイマープログラムを作ろうとしています。 2つのタイマーオブジェクトがあります。 timer1
に時間がなくなると、それは停止し、timer2
はカウントダウンを開始します。 timer2
が不足すると、timer1
が再び開始されます。C#:2タイマオブジェクトは機能しませんか?
private void timer1_Tick(object sender, EventArgs e)
{
milli1--;
if(milli1 == -1)
{
sec1--;
milli1 = 59;
if (sec1 == -1)
{
min1--;
sec1 = 59;
if (min1 == -1)
{
min1 = 0;
sec1 = 0;
milli1 = 0;
Console.WriteLine("Timer1 stops!");
timer1.Stop();
timer2.Start();
}
}
}
//updates displayed time
}
しかし、タイマ1が停止したとき、タイマ2が起動していないよう:ここに私のコードです。どういうわけか、timer1はティッキングを続け、「Timer1 Stops!」を継続的に出力します。コンソールに。これをどうやって解決するのですか?
編集:ここに私のtimer2_Tickは(ある):
private void timer2_Tick(object sender, EventArgs e)
{
milli2--;
if (milli2 == -1)
{
sec2--;
milli2 = 59;
if (sec2 == -1)
{
min2--;
sec2 = 59;
if (min2 == -1)
{
min2 = 0;
sec2 = 0;
milli2 = 0;
timer2.Stop();
timer1.Start();
}
}
}
//updates displayed time
}
EDIT 2:同じ間隔を持つ2つのタイマーは些細な問題です。タイマーの間隔が異なると、私のコードも機能しません。
timer2の間隔とコードは、どのくらいですか?多分それは直ちに停止し、再びtimer1を開始するでしょうか?タイマー1を再利用できないのはなぜですか?また、あなたがしようとしていることを読んで理解するのは恐ろしいコードです。いくつかのネストを削除し、コードを再考しようとすることを検討してください。 –
ところで、milli1がミリ秒を意味する場合、秒ではなく、1000秒になります。 –
両方のタイマのティックイベントを登録するコードを表示 –