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

时间:2017-02-02 08:12:31

标签: c# console resize ioexception

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

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

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

enter image description here

现在,我不知道为什么会发生这种情况,如果它应该发生,更不用说如何解决/阻止这种情况了。谁能解释一下?我非常好奇!

提前致谢。

1 个答案:

答案 0 :(得分:0)

问题是你正在尝试清除一个维度为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();
    }
}