【发布时间】:2016-01-23 01:59:49
【问题描述】:
我在 C# 中有一个简单的控制台应用程序,它创建了一个计时器来将文本写入控制台。然后等待用户按键。
如果用户在五秒内按下某个键,则应用程序结束,并且计时器永远不会触发。如果用户没有按任何键,则计时器按预期触发。
为什么计时器创建的线程不能阻止应用程序终止?即使用户按键,我应该如何确保应用程序继续运行?
static void Main(string[] args)
{
System.Timers.Timer timer = new System.Timers.Timer(5000);
timer.Interval = 5000; // 5 seconds
timer.Elapsed += new System.Timers.ElapsedEventHandler(timer_Elapsed);
timer.Enabled = true;
timer.AutoReset = true;
timer.Start();
Console.ReadKey();
}
public static void timer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
{
Console.WriteLine("Timer Fired.");
}
【问题讨论】:
标签: c# multithreading timer