多线程App缓慢停止

时间:2014-05-10 05:12:33

标签: c# vb.net multithreading

使用Visual Studio 2010:

我有.net应用程序,每天在14个小时内产生数十万个线程。我现在在IDE中运行应用程序作为“生产”。我的问题是,为什么当我通过IDE界面暂停或停止应用程序时,它是否会在停止前挂起5到10秒?

我查了一下:

调试> Windows>主题

在我停止应用程序之前验证我的线程是否正在关闭。 (他们是。他们在我试图停止之前正在执行和完成几个小时。)

我已经检查了Control + Alt + Delete,以验证资源没有挂钩。 CPU正在以0%运行,并消耗了35%的内存(无波动)。

不幸的是,这就是我可以尝试弄清楚为什么会出现这种症状。我一直在停止这个应用程序,并且从2011年开始每天都在启动它,因为我担心如果我让程序连续运行2天,那么根据我点击停止按钮时会看到的性能会有所下降。

提前感谢积分&的解决方案。

1 个答案:

答案 0 :(得分:0)

有一个调试过程跟踪那个巨大的线程列表及其所有元数据的事实可能会导致一些减速。此外,缓慢暂停有时可能是由于项目的大小。虽然5到10秒是极端的,但我很少看到暂停是非常直接的,因为它必须清理所有内部资源。

如果你想测试程序的稳定性,我建议尝试在几个不同的时间(6小时,12小时,24小时等)暂停它,看看是否有区别。更有可能的是,它只是在性能的某个时刻处于平稳状态,并且在运行2天或更长时间内可能没有问题。

如果你想在最野外的时间里测试这个节目"可能的条件,考虑在没有任何pdb(因此没有调试器)的发布模式下运行它,但添加一些代码将所有这些线程闭包抛入日志文件(或Windows事件日志)并检查性能和资源使用情况经过上述相同的间隔后。