在调整大小状态下清除控制台 window 时发生 IOException

IOException occurs when clearing console window in resized state

正如标题所说,当我将控制台 window 调整为特定形状时,调用 Console.Clear() 时会抛出 IOException,我不确定为什么。这是我的示例代码:

using System;
using System.Threading;
class Program
{
    static void Main()
    {
        for (int i = 0; ;)
        {
            Console.Write(i++);
            Thread.Sleep(250);
            Console.Clear();
        }
    }
}

这里有一个很好的小 GIF 来演示如何重现:

现在,我不知道为什么会发生这种情况,是否应该发生,更不用说如何 fix/prevent 了。谁能解释一下?我很好奇!

提前致谢。

问题是您正在尝试清除一个维度为 0 的控制台。我猜想清除是试图将光标放在左上角的位置,但由于它不能,它会抛出该异常。

你可以在 Console.Clear:

之前添加一个检查来解决
static void Main()
{
    for (int i = 0; ;)
    {
        Console.Write(i++);
        Thread.Sleep(250);
        if (Console.WindowHeight>0 && Console.WindowWidth>0)
            Console.Clear();
    }
}