代码之家  ›  专栏  ›  技术社区  ›  Stiefel

Windows窗体:为什么长时间运行的算法的文本框会在一段时间后停止输出?

  •  3
  • Stiefel  · 技术社区  · 15 年前

    我用Windows窗体GUI编写了一个.NET应用程序。应用程序在主GUI线程中启动一个长时间运行的算法(不创建第二个线程)。

    该算法使用System::Console记录进度信息。 使用system.console.setout()将system.console重定向到文本框。

    在前10-30秒,一切正常,所有记录到文本框。但是,一段时间后,文本框将冻结,并且不会显示任何进一步的日志-丢失的日志将在算法停止后立即打印。

    问题是:为什么这项工作会持续一段时间然后停止?据我所知,它要么有效,要么无效。

    P.S.:我知道,使用算法的第二个工作线程和一些委托打印出日志,最好解决这类问题。但它是实验代码,我只是好奇为什么它会工作一段时间然后停止。

    2 回复  |  直到 15 年前
        1
  •  1
  •   smirkingman    15 年前

        2
  •  1
  •   GvS    15 年前

    1. Application.DoEvents