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