应用程序在一些空闲时间后冻结

时间:2010-04-16 18:51:36

标签: c# desktop-application

我正在使用C#2.0开发一个软件,它使用大约200MB的内存,偶尔会有高CPU。问题是,当我在应用程序运行时离开我的机器大约20-30分钟时,在我回来并尝试使用该应用程序后,它会冻结约2分钟,然后变为交互式。

为什么会这样?有什么方法可以避免这种情况吗?

谢谢大家。

此致

-Rakib

4 个答案:

答案 0 :(得分:2)

只是一个疯狂的猜测,但也许你的应用程序的内存页面在空闲时被换出,并在你恢复时返回。

或者你的UI线程阻塞某些东西。我们需要更多细节才能真正诊断出来。

答案 1 :(得分:1)

我知道这是旧线程,但我在搜索类似问题的答案时偶然发现了这一点。

对于我使用计时器触发的renderTargetBitmap在显示期间关闭空闲(Vista,控制面板)很快就使用了所有内存和计算机冻结。

您可以在此处找到更多详细信息:

http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/4a4ab601-f832-49ac-aca5-1f537fec1d04

(MSDN论坛 - .Net开发论坛 - WPF - 20分钟后开始大量内存消耗

答案 2 :(得分:0)

没有办法用最少的信息来回答这个问题。

一些猜测:

  • 垃圾收集开始了(很可能是nog?)
  • 访问了一些系统资源
  • UI线程正在阻止

答案 3 :(得分:0)

您可以尝试使用某些.NET Profiler来确定代码或线程的哪个部分导致高CPU或内存使用