我在我的控制台应用程序的主方法中使用了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))
{ }
}
答案 0 :(得分:0)
我接受Sinatr的回答。根据{{3}}
使用KeyAvailable是一种执行这些检查而不会阻塞任何内容的常用方法