C# 禁用用户输入,直到thread.sleep完成

C# 禁用用户输入,直到thread.sleep完成,c#,multithreading,console,C#,Multithreading,Console,所以我是一个初学者程序员。 我正在学习编程的第二年 所以我想知道是否有一种简单的方法可以在c#控制台应用程序中等待Thread.Sleep完成。因为当我有一个thread.sleep和一个console.readkey在后面的时候。 将执行console.ReadKey 有人能告诉我怎么做吗。 如果你愿意,为什么会发生这种情况 好的,这只有在我使用其他方法时才会发生 如果我要这么做 Thread.Sleep(); //sleep 100 seconds Console.Read(

所以我是一个初学者程序员。 我正在学习编程的第二年

所以我想知道是否有一种简单的方法可以在c#控制台应用程序中等待Thread.Sleep完成。因为当我有一个thread.sleep和一个console.readkey在后面的时候。 将执行console.ReadKey

有人能告诉我怎么做吗。
如果你愿意,为什么会发生这种情况

好的,这只有在我使用其他方法时才会发生

如果我要这么做

Thread.Sleep(); //sleep 100 seconds
        Console.Read();
当我按下按钮时,什么也没发生

然而,使用不同的方法

static void Main(string[] args)
    {
        IntervalMessage("this is a test");
        Console.ReadKey();
    }
        public static void IntervalMessage(string message)
    {
        for (int i = 0; i < message.Length; i++)
        {
            if (i == message.Length - 1)
            {
                Console.Write(message[i]);
                System.Threading.Thread.Sleep(120);
            }
            else
            {
                Console.Write(message[i]);
                System.Threading.Thread.Sleep(110);
            }
        }
        Console.ResetColor();
    }
static void Main(字符串[]args)
{
IntervalMessage(“这是一项测试”);
Console.ReadKey();
}
公共静态无效间隔消息(字符串消息)
{
for(int i=0;i
它将能够在睡眠时接收输入。
谢谢你的帮助。我自己想出来了。

为什么会发生这样的事情?确切的问题还不清楚。你想完成什么?你能提供一些代码来支持你的思想链吗?通常,如果您需要在线程之间传递事件通知,您将使用等待句柄。如果我不清楚,很抱歉。当你使用线程睡眠的时候。它仍然允许用户输入。不,当Sleep()和ReadKey()在同一个线程上时,它们应该按顺序出现。因此,您对问题来源的猜测是错误的。System.Threading.Thread.Sleep(120);哭了120毫秒,你注意到了吗?