簡體   English   中英

創建倒數計時器,直到計時器啟動

[英]Creating a countdown timer,until a timer starts

我在控制台應用程序中有一個計時器:

using System.Timers;
Timer Timer = new Timer();

我給了它一個interval ,它會定期在_timer_Elapsed方法中做一些事情:

Timer.Elapsed += _timer_Elapsed;
Timer.Enabled = true;

private static void _timer_Elapsed(object sender, ElapsedEventArgs e)
{
    ...
}

如何創建第二個倒計時直到此計時器啟動的計時器?

創建一個每秒經過的第二個計時器,並使用以下代碼進行倒計時並向控制台寫入一條消息。

#define COUNTDOWN_SECONDS 10

private int CountDownValue = COUNTDOWN_SECONDS;

private static void _timer2_Elapsed(object sender, ElapsedEventArgs e)
{
    WriteConsoleMessage(CountDownValue--);

    if (CountDownValue == 0)
    {
        // Stop timer2
        // Start timer1
    }
}

private static void WriteConsoleMessage(int Value)
{
    if (Value < COUNTDOWN_SECONDS)
        Console.CursorLeft = 0;  // Reset cursor to start of the line

    Console.Write(string.Format("{0} Seconds until timer starts", Value.ToString());
}

繼承人我是如何做到的:

    public static int Interval = 5000;
    public static int IntervalLeft = Interval;


            Timer.Elapsed += _timer_Elapsed;
            Timer.Enabled = true;
            Timer.Interval = Interval;

            CountDownTimer.Elapsed += _CountDowntimer_Elapsed;
            CountDownTimer.Enabled = true;
            CountDownTimer.Interval = 1000;
            CountDownTimer.Start();



    private static void _timer_Elapsed(object sender, ElapsedEventArgs e)
    {
        CountDownTimer.Stop();
        Timer.Stop();

         DOES THE JOB HERE


        Timer.Start();
        CountDownTimer.Start();
        IntervalLeft = Interval;
    }


   private static void _CountDowntimer_Elapsed(object sender, ElapsedEventArgs e)
    {
        Zipper.ClearCurrentConsoleLine();
        IntervalLeft = (IntervalLeft - 1000);
        Console.Write("Starts in" + IntervalLeft/1000);
    }

第一個計時器在第二個計時器結束時停止...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM