【问题标题】:c# Problems with repeated console.writeline commandsc#重复console.writeline命令的问题
【发布时间】:2011-02-25 16:05:49
【问题描述】:

我正在编写一个 c# 命令行应用程序(WIN7、64 位),它应该在命令行中写入许多行。

我将问题归结为以下代码:

        int lineno;
        for (lineno = 0; lineno < 100000; lineno++) { 
            Console.WriteLine(">" + lineno);
        }

我不明白为什么应用程序在 39404 行之后就死了:

...
&gt;39401
&gt;39402
&gt;39403
&gt;39404
"Console Application has stopped working."

如果您有任何想法,请告诉我这里出了什么问题。

谢谢你和最好的问候,德克。

【问题讨论】:

  • 嗨,如果你放了一个 try-catch,你会捕捉到什么吗?
  • 我在 WinXP SP3、x86 机器上尝试了相同的代码,并且工作正常。
  • 消息Console Application has stopped working. 必须来自,那么您在什么情况下打印出该消息?
  • @ SO :我没有得到,为什么这个问题被赞成?这似乎不正确。
  • 投反对票。 发布完整的源代码。

标签: c# .net console


【解决方案1】:

我怀疑你的问题。因为我的程序运行良好,在 MS Visual Studio 2008 下显示到 99999。


编辑: 在 Dirk 对 Davido 的回答发表评论后,Console.WriteLine("&gt;&gt;&gt;" + lineno); 输出打印了很多 36251 次。但这是不正确的。使用 >>>" 也可以使程序准确运行。

这是相同的图像。

【讨论】:

    【解决方案2】:

    我无法重现该问题 - 似乎问题出在环境上。

    它总是在39404 失败吗?一段时间后它会失败吗?你如何启动它?您是否尝试过从命令行启动它?您确定这是您拥有的所有代码吗?您是否尝试过使用不同的配置来构建它?

    回答这些问题,您可能会找到导致问题的原因。

    编辑:我看到的最奇怪的是这条消息:

    “控制台应用程序已停止工作。”

    这显然不是系统或框架消息。
    请发布完整的代码,因为看起来你做错了什么。

    【讨论】:

    • 您好,Gaeron,感谢您的支持。 - 我总是从命令行启动程序。 - 我为每个循环尝试了一个 Thread.Sleep(10),没有任何变化。 - 始终是同一行 - 我使用标准的 cmd.exe。
    【解决方案3】:

    在我的系统上运行良好。 (Windows 7,VS 2010)。

    您使用的是什么操作系统和框架版本?

    【讨论】:

      【解决方案4】:

      尝试将您的应用程序目标更改为针对 x86 进行编译。有时这可以解决我在不同项目中遇到的奇怪问题。

      编辑:

      Dirk,尝试创建一个新项目并将您的代码放入一个空白控制台项目中。看看这是否会改变它的输出方式。我怀疑这样做会改变你能写的行数。如果是这样,那么您尚未发布的其他一些代码存在问题。只是您可能想要考虑的事情。

      【讨论】:

      • 如果我将代码更改为:console.writeLine(">>>.. (三个 ">") 我只得到 36251 行 :-(
      • 嗨,我确实创建了一个新项目并将循环复制到其中。这似乎工作正常。它认为该问题是由“ftcjtag.dll”引起的,该 dll 在 32 位和 64 位窗口上运行良好,但在 64 位机器上调试运行时会导致错误。消息说堆栈已损坏。
      • 我也尝试为 x86 编译代码,但从我在网上找到的 cmets 看来,这似乎无法使用 express :-( .
      猜你喜欢
      • 1970-01-01
      • 2016-04-27
      • 1970-01-01
      • 2020-07-28
      • 1970-01-01
      • 2011-10-01
      • 2016-01-03
      • 2022-12-03
      • 2014-03-11
      相关资源
      最近更新 更多