C#中标准I / O的非阻塞读取
我想从控制台获得非阻塞读取function。 我如何用C#编写?
var buf=new byte[2048]; var inputStream=Console.OpenStandardInput(); //dispose me when you're done inputStream.BeginRead(buf,0,buf.Length,ar=>{ int amtRead=inputStream.EndRead(ar); //buf has what you need. You'll need to decode it though },null);
Richard Dutton在他的博客上有一个解决方案:
while (true) { if (Console.KeyAvailable) { ConsoleKeyInfo key = Console.ReadKey(true); switch (key.Key) { case ConsoleKey.F1: Console.WriteLine("You pressed F1!"); break; default: break; } } // Do something more useful }