繁体   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