c#在不停止应用程序的情况下读取用户输入是否有可能(在控制台应用程序中)运行一些循环并仍然能够做出反应?我只能想到事件,但不知道如何在控制台中使用它们。我的想法是循环将在每次迭代期间检查输入。我为自己的应用程序执行此操作的方法是使用专用线程调用System.Console.ReadKey(true)并将按键(和任何其他事件)放在消息队列中。然后主线程在一个循环中为这个队列提供服务(以类似于Win32应用程序中的主循环的方式),确保渲染和事件处理在单个线程上处理。privatevoidStartKeyboardListener(){varthread=newThread(()=>{while(!this.stopping){ConsoleKeyInfokey=System.Console.ReadKey(true);this.messageQueue.Enqueue(newKeyboardMessage(key));}});thread.IsBackground=true;线程。开始();}privatevoidMessageLoop(){while(!this.stopping){Messagemessage=this.messageQueue.Dequeue(DEQUEUE_TIMEOUT);if(message!=null){switch(message.MessageType){caseMessageType.Keyboard:HandleKeyboardMessage((KeyboardMessage)message);休息;...}}Thread.Yield();//orThread.Sleep(0)}}让循环运行在单独的线程中运行。以上是C#学习教程:c#在不停止应用的情况下,读取用户输入和分享的所有内容。如果对大家有用,需要详细了解C#学习教程,希望大家多多关注——classProgram{privatestaticstringinput;publicstaticvoidMain(){Threadt=newThread(newThreadStart(work));输入=Console.ReadLine();}privatestaticvoidwork(){while(input==null){//dostuff....}}}本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
