我刚才意识到TextReader是Console.In的类型,没有BeginRead方法。
如何从Console.In实现异步读取?
我的第一个想法是让一个HANDLE到stdin并让服务员等待该句柄发出信号。但这涉及很多Win32呼叫。
有更简单的方法吗? 也许就是:
Stream s = (Stream) Console.In;
s.BeginRead(..)
有什么想法吗?
答案 0 :(得分:3)
您可以在单独的线程中对Console.KeyAvailable
进行轮询,然后在数据可用时立即读取。
答案 1 :(得分:0)
创建您自己的类,该类将调用线程化到Console.Read并将所有读取的数据存储在某处。然后用EndRead结束线程并让它返回它读取的数据。