我正在构建.NET 4.0控制台应用程序,它不断地(通常每隔几秒)写出一个控制台。这是一个多线程应用程序,不同的线程在不同的时间写入控制台。在.NET中同时读写控制台
问题是我想在所有这些都发生时接受用户输入。用户输入可能随时发生。
我试过两种不同的方法,但都不能很好地工作。
我试着用一个单独的线程通过寻找
Console.KeyAvailable
来阅读。这个“工作”,但真是令人困惑,因为字符串正在写入输出,当你试图输入。这使得光标在打字时四处移动,迷惑不解。我试着用
Console.SetCursorPosition
把控制台分成两个“窗格”。输出顶部并在下面输入。这也有效,但每次绘制屏幕后我都必须调用Console.Clear()
。这很慢,导致屏幕闪烁闪烁。
这似乎是我唯一的其他选择是编写Windows窗体应用程序或WPF应用程序来模拟控制台。这似乎很荒谬,因为我唯一想做的事情就是接受自发的用户输入。
我的谷歌福没有露面任何有效的控制台替换或任何人谁曾建立一个模拟控制台一个.net应用程序....
难道我坚持在这里?
你能不能 '暂停' 在按键后的输出?您可以决定暂停持续的时间 – Jared 2012-04-13 21:51:28