以下是一本C#书的例子:
// Timer02.cs - Displaying Date and Time
// Using the Timer class.
// Press Ctrl+C or 'q' folllwed by Enter to end program.
//------------------------------------------------------------
using System;
using System.Timers;
class myApp
{
public static void Main()
{
Timer myTimer = new Timer();
myTimer.Elapsed += new ElapsedEventHandler(DisplayTimeEvent);
myTimer.Interval = 1000;
myTimer.Start();
while (Console.Read() != 'q')
{
; // do nothing...
}
}
public static void DisplayTimeEvent(object source, ElapsedEventArgs e)
{
Console.Write("\r{0}", DateTime.Now);
}
}
我猜这是循环运行直到q被按下,但是当按下q时循环没有结束。
我在这里缺少什么?
答案 0 :(得分:4)
答案 1 :(得分:1)
编辑:我发布的方法从未打印过消息,直到按下其他键为止。
然而,这将有效....
public static void Main()
{
Timer myTimer = new Timer();
myTimer.Elapsed += new ElapsedEventHandler(DisplayTimeEvent);
myTimer.Interval = 1000;
myTimer.Start();
while (true)
{
if (Console.KeyAvailable)
{
while (Console.ReadKey().KeyChar != 'q')
{
// do nothing
}
break;
}
}
}
这里的关键是使用:Console.ReadKey()。KeyChar!='q'