3

我有一个基本的 C# 控制台应用程序,它从网站检索日志,但是在 100 行之后,旧日志被删除,用户无法向上滚动并查看它们,有什么方法可以增加它将保存的大小?

4

3 回答 3

11

Console.SetBufferSize() 为您购买更大的缓冲区。然而,有一些并发症。最大大小有上限,并且 SetBufferSize() 方法中的参数验证代码中存在错误。它报告 Int16.MaxValue 是您可以要求的最大行数。这是一个错误的错误。在 Windows 7 上,您可以使用:

static void Main(string[] args) {
    Console.SetBufferSize(Console.BufferWidth, 32766);
    // etc..
}

在较旧的操作系统(如 XP)上,有更严格的限制,缓冲区大小过去被限制为 65536 字节。我没有他们在身边检查了。这些可能有效的代码是:

    static void Main(string[] args) {
        var lines = 65536 / 2 / Console.BufferWidth;
        Console.SetBufferSize(Console.BufferWidth, lines);
        // etc..
    }
于 2012-10-23T23:56:47.100 回答
1

您可以使用 Console.SetBufferSize() http://msdn.microsoft.com/en-us/library/system.console.setbuffersize.aspx

于 2012-10-23T22:57:18.190 回答
0

Console.SetOut 还可以帮助您将控制台输出重定向到文件。按照链接获取示例。 http://www.java2s.com/Code/CSharp/Development-Class/DemostratesredirectingtheConsoleoutputtoafile.htm

于 2012-10-23T23:05:16.703 回答