C# 当(真的)循环停止时?

C# 当(真的)循环停止时?,c#,multithreading,while-loop,infinite-loop,C#,Multithreading,While Loop,Infinite Loop,目前正在学习使用线程,并制作了一个控制台应用程序,将随机ASCII字符写入控制台窗口。我创建的方法工作得很好,但是文本在大约三行半(ish)之后停止。为什么循环会停止?我并不需要循环永远运行,我只是好奇为什么(应该是什么)无限循环会意外停止。以下是我正在使用的代码: static void Main(string[] args) { Thread ThreadKeyboard = new Thread(new ThreadStart(RandomKeyboard)); ThreadKeybo

目前正在学习使用线程,并制作了一个控制台应用程序,将随机ASCII字符写入控制台窗口。我创建的方法工作得很好,但是文本在大约三行半(ish)之后停止。为什么循环会停止?我并不需要循环永远运行,我只是好奇为什么(应该是什么)无限循环会意外停止。以下是我正在使用的代码:

static void Main(string[] args)
{
 Thread ThreadKeyboard = new Thread(new ThreadStart(RandomKeyboard));
 ThreadKeyboard.Start();
        //Wait for input
        Console.Read();
 ThreadKeyboard.Abort();
}

public static void RandomKeyboard()
{
    Console.WriteLine("Random Keyboard Thread Started");

    while (true)
    {
        char key = (char)(rand.Next(25)+65);
        if (rand.Next(2) == 0)
        {
            key = char.ToLower(key);
        }

        SendKeys.SendWait(key.ToString());
        Thread.Sleep(rand.Next(50));
    }     
}

替换
SendKeys.SendWait(key.ToString())
与Console.WriteLine(key.ToString())
SendWait
:“将给定的密钥发送到活动应用程序,然后等待消息被处理。”-这是停止的地方吗?如果有疑问,请阅读手册,@General,那么这是否意味着SendWait()方法只能容纳这么大的字符串?@Zach“只能容纳这么大的字符串”-你是从哪里得到这个想法的?在你的代码中你只发送了一个键。