我是建設一個「反向控制檯」(這樣寫的線將自己附加在上面的,而不是底部),我偶然發現了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是問題.... 沒有任何人有什麼線索可能是錯的?