Timer事件处理程序不在控制台上写入

Ima*_*heh 4 c# timer

我知道这可能很奇怪,但我有一个计时器,我有一个事件处理程序,用于在控制台上写入的Elapsed事件,但是当我启动应用程序时,计时器正常启动,事件也正常启动.但是,结果不会显示在控制台中,除非我按下一个按钮,这使我放两个,Console.ReadKey()所以应用程序将不会终止.

这是以下代码Program.cs:

    static void Main(string[] args)
    {
        Timer timer = new Timer(100);
        timer.Elapsed += new ElapsedEventHandler(WriteOnConsole);
        timer.Start();
        Console.ReadKey();
        Console.ReadKey();
    }

    static void WriteOnConsole(object source, ElapsedEventArgs e)
    {
        Console.WriteLine("A B C D");
    }
Run Code Online (Sandbox Code Playgroud)

如果我没有提到足够的信息,请通知我.

Dan*_*rth 8

ReadKey()WriteLine().按下一个键后,第一个键ReadKey完成,并刷新对控制台的挂起写入.

由于这显然只是一个小样本来证明问题,因此很难提出更好的选择.

一种可能是使用某种等待句柄仅在满足某个条件时退出应用程序.