C# 如何让按键在控制台应用程序的任何阶段都起作用?

C# 如何让按键在控制台应用程序的任何阶段都起作用?,c#,console,C#,Console,我对C#和编程一般来说是相当陌生的,我正在尝试制作一个基于文本的RPG来学习编程技术。我想有一个按钮,如F5,可以在游戏中的任何一点使用,以显示球员的统计数据。起初我想使用while循环来实现这一点,但后来我不知道如何在代码中返回到故事的同一部分。相反,我想把所有的统计数据打印到一个文本文档中,但这仍然需要在整个代码中按下按钮。我真的不知道要包含什么代码,因为我真的不知道从哪里开始,这更像是一个逻辑问题 您需要的是一个并发线程来检查输入 一个非常简单的例子是: public class Prog

我对C#和编程一般来说是相当陌生的,我正在尝试制作一个基于文本的RPG来学习编程技术。我想有一个按钮,如F5,可以在游戏中的任何一点使用,以显示球员的统计数据。起初我想使用while循环来实现这一点,但后来我不知道如何在代码中返回到故事的同一部分。相反,我想把所有的统计数据打印到一个文本文档中,但这仍然需要在整个代码中按下按钮。我真的不知道要包含什么代码,因为我真的不知道从哪里开始,这更像是一个逻辑问题

您需要的是一个并发线程来检查输入

一个非常简单的例子是:

public class Program
{
    static void Main(string[] args)
    {
        ThreadStart ts = new ThreadStart(ReadKey);

        Thread t = new Thread(ts);
        t.Start();

        while(true)
        {
            Console.WriteLine(DateTime.Now);

            // Simulate some processing
            Thread.Sleep(1000);
        }
    }

    static void ReadKey()
    {
        while(true)
        {
            if (Console.KeyAvailable)
            {
                Console.WriteLine("Pressed!");
                Console.ReadKey(true); // Flush the input stream without showing the key on screen.
            }
        }
    }
}
这里发生的事情是,我们正在创建一个新线程,它以这样一种方式检查用户输入,即两个线程都不相互依赖

这只是一个例子! 请注意,这是一个非常复杂的问题,容易出现多种错误,其中大多数都很难诊断。如果你只是在学习如何编程,我建议你首先关注基础知识。最终,您将获得更高级的主题

还要注意的是,我没有在这段代码中使用一些


除此之外,在学习编写代码的同时,主动开发一些东西,这是一项了不起的工作!坚持下去,不要忘了在阅读的同时也要阅读一些书或值得信赖的在线资源

相关:这正是我想要的,非常感谢。是的,在做这个基于文本的RPG时,我从任何一本书中学到的东西都比以前多得多,因为问题是真实可见的。再次感谢:)