【问题标题】:How to keep track of user input in C# console application?如何在 C# 控制台应用程序中跟踪用户输入?
【发布时间】:2017-08-27 09:29:39
【问题描述】:

我正在使用 C# 制作控制台游戏。我希望我的程序在用户点击箭头键时执行一段代码。虽然这听起来很简单,但我不知道该怎么做,因为我是 C# 的新手。

PS 我正在开发 VS for mac。

编辑 1:我想跟踪用户输入意味着我不希望它在程序侦听用户输入时停止其他任务。

【问题讨论】:

    标签: c# console-application user-input


    【解决方案1】:

    您的 GameLogic 应该在一个单独的线程中无限循环地运行。 您可以通过在主线程上的 while(true) 循环无限循环中收听 Console.ReadKey() 来跟踪。每次按下键时,您都可以抛出一个由其他线程处理的事件。

    要开始一个新线程,请查看:How do I run a simple bit of code in a new thread?

    一个干净的方法是创建一个拥有私有线程的 GameLogicWorker(我认为最干净的方法) 这个答案显示了如何做到这一点:https://stackoverflow.com/a/8123600/4992212

    但是有几种选择。也可以使用 async 和 await 关键字来实现异步操作。

    【讨论】:

    • 好主意!我还没有想到多线程。但是你能告诉我如何在 C# 中进行多线程吗?
    • 编辑了我的答案。第二个链接提供了一个如何实现工作类的示例,您可以将其用于您的 GameLogic
    • 非常感谢!完美解决了我的问题!该网站现在不允许我接受您的回答。我稍后再做。
    • 很高兴能帮上忙 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多