【发布时间】:2014-04-20 06:32:28
【问题描述】:
这就是我现在保持控制台窗口打开的方式:
private static void Main(string[] args)
{
// Timers run here
while(true)
{
Console.Read();
}
}
但它总是会回到我身边:一定有更好的方法。 Console.Read() 在永恒的while 中的原因是因为我不希望我的程序在运行时误按enter 并且我专注于它的窗口时终止。
有什么想法吗?
没有回答我的问题的相关问题:
【问题讨论】:
-
您希望控制台窗口在执行某些工作时保持打开状态?
-
这看起来像您在 完成其工作后保持窗口打开。通常像单个
Console.ReadLine()(带有“按回车键关闭”的消息)之类的东西是保持窗口打开直到用户关闭它的标准方法。 -
你可能想使用多线程,是吗?
-
@DougPeters:啊,现在更有意义了。您希望后台任务在应用程序关闭之前完成。在那种情况下,我想知道这里的整体架构是否存在问题。如果这应该是一个带有计时器的“始终运行”的应用程序,那么 Windows 服务可能会更好地工作吗?或者将定时组件分解成它们自己的应用程序,并用主机操作系统中的预定作业替换计时器?如果它们只需要单次运行的后台任务,那么也许可以代替计时器使用类似并行任务的东西并在最后等待这些任务?
-
@DougPeters 是否正在重构以使用 .NET 任务框架并使用
Task.WaitAll()选项? msdn.microsoft.com/en-us/library/dd270695(v=vs.110).aspx