我试图按Q退出控制台窗口中的内容。我不喜欢我目前的执行方式。有没有一种方法可以使我异步或使用回调从控制台获取 key ?
最佳答案
您可以从另一个线程调用Console.ReadKey()
,这样它就不会阻塞您的主线程。 (您可以使用.Net 4 Task
或旧的Thread
启动新线程。)
class Program
{
static volatile bool exit = false;
static void Main()
{
Task.Factory.StartNew(() =>
{
while (Console.ReadKey().Key != ConsoleKey.Q) ;
exit = true;
});
while (!exit)
{
// Do stuff
}
}
}