【问题标题】:How can I optimize Console.WriteLine ("");如何优化 Console.WriteLine ("");
【发布时间】:2016-05-07 18:34:28
【问题描述】:

碰巧我试图每秒打印数千个字符串,但我发现我的应用程序受到了影响,因为 Console.WriteLine ("");让应用变慢很多,有什么办法可以优化吗?

我正在使用多线程 在每个 IP 地址中实时打印一份报告 http://i.imgur.com/3PII3hi.png 访问打印服务器的所有 IP 地址。 它们大约每秒 10,000 个

Console.WriteLine("   Client [" + IP + "]  are logged");

【问题讨论】:

  • 为什么每秒打印数千个字符串?你的应用程序在做什么?我个人建议您在一个单独的线程(例如,后台工作人员)中执行此操作,但在不知道您的应用程序的实际目的的情况下,我不想建议您这样做,直到我知道您实际在做什么。跨度>
  • 你每秒能读10000行吗?控制台用于用户交互。
  • 不确定你是否理解这里的人,比如@AlessandroD'Andria,在说什么。如果你每秒都在控制台上转储“数千条消息”,那是给谁的?你为什么这样做?该窗口上的缓冲区通常少于一千,没有人能够读取这些消息。这类似于人们问为什么普通的 UI 网格无法处理数百万行。答案是“因为这是对待用户的一种相当愚蠢的方式”。
  • 您是否正在登录以供将来参考?如果是这样,那么也许一个文件比控制台更适合这个?

标签: c#


【解决方案1】:

日志记录应该通过文件完成,而不是控制台:

private void writeToLogFile(string pathToLogFile)
    {
        File.AppendAllText(pathToLogFile, "Client [" + IP + "] are logged");
    }

你还想把它放在一个 try/catch 块中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-12-18
    • 2011-04-09
    • 2021-02-02
    • 2010-12-20
    • 2012-03-31
    • 2021-12-27
    • 2023-03-05
    相关资源
    最近更新 更多