使用Threading.Timer时保持主线程c#

时间:2017-08-28 12:38:42

标签: c# multithreading timer

我在我的控制台应用程序的主方法中使用了Timer。现在我使用一些while循环来保持我的主线程,我在网上找到了。因为当它死了,我的线程,我传递给计时器的执行方法也会死掉。

问题:是否阻止了我的主线程或者可以这样使用它?或者是否有更好的方法来保持主线程不会阻塞任何东西?

public void Run()
{
    Logger.Trace("Timer Started.");
    Timer.Change(0, Timeout.Infinite);
    Console.WriteLine("Press ESC to stop...");
    while (!(Console.KeyAvailable && Console.ReadKey(true).Key == ConsoleKey.Escape))
    { }
}

1 个答案:

答案 0 :(得分:0)

我接受Sinatr的回答。根据{{​​3}}

使用KeyAvailable是一种执行这些检查而不会阻塞任何内容的常用方法