我是建设一个“反向控制台”(这样写的线将自己附加在上面的,而不是底部),我偶然发现了Console.MoveBufferArea方法的一个非常奇怪的现象:奇怪控制台MoveBufferArea IOException异常
static void Main()
{
for (var _linesWritten = 0; _linesWritten < 1000; _linesWritten++)
{
var _height = Math.Min(Console.BufferHeight-1, _linesWritten);
Console.MoveBufferArea(0, 0, Console.BufferWidth, _height, 0, 1);
Console.SetCursorPosition(0, 0);
Console.WriteLine("Line {0} aaaaaaaaaa", _linesWritten);
Console.ResetColor();
}
}
当我将其称为固定次数时,它会引发System.IO.IOException异常:“没有足够的存储空间来处理此命令”。我发现这取决于正在移动的缓冲区的数量。在更改Console.BufferWidth属性时,引发异常之前写入的行数会发生变化。
我运行Windows 7 X64的@ Corei7,6GB DDR3,所以存储shuldn't是问题.... 没有任何人有什么线索可能是错的?