C# 创建倒计时计时器,直到计时器启动

C# 创建倒计时计时器,直到计时器启动,c#,C#,我在控制台应用程序中有一个计时器: using System.Timers; Timer Timer = new Timer(); 我给了它一个间隔,它在\u timer\u persed方法中周期性地做一些事情: Timer.Elapsed += _timer_Elapsed; Timer.Enabled = true; private static void _timer_Elapsed(object sender, ElapsedEventArgs e) { ... } 如何

我在控制台应用程序中有一个计时器:

using System.Timers;
Timer Timer = new Timer();
我给了它一个
间隔
,它在
\u timer\u persed
方法中周期性地做一些事情:

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());
}
#定义倒计时(10秒)
private int CountDownValue=倒计时秒;
私有静态无效时间2已过(对象发送方,ElapsedEventArgs e)
{
WriteConsoleMessage(倒计时值--);
如果(倒计时值==0)
{
//停止计时器2
//开始计时器1
}
}
私有静态void WriteConsoleMessage(int值)
{
如果(值<倒计时\u秒)
Console.CursorLeft=0;//将光标重置为行的开头
Write(string.Format(“{0}秒直到计时器启动”,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);
    }

第一个计时器在第二个计时器消失时停止…

“倒计时”?以何种方式?不清楚您想要什么。只需创建一个间隔较短的第二个计时器(无论您想要什么,比如1秒)当“计时器已过”事件触发时停止它。以某种方式倒计时,告诉用户,距离第一个计时器启动还剩5秒,距离第一个计时器启动还剩4秒,依此类推:第二个计时器如何知道第一个计时器何时启动?您还没有描述这种行为。第二个计时器是否启动第一个计时器?就此而言,为什么我第二个计时器不叫第一个计时器,反之亦然,因为“第二个计时器”是已经运行的计时器。当应用程序开始运行时,第一个计时器开始运行,所以当第一个计时器启动时,第二个计时器也开始运行,倒计时直到第一个计时器启动。。。