【发布时间】:2013-06-28 03:55:14
【问题描述】:
这是 Windows 的常见问题。多年来,我已经注意到了这一点,这真的让我感到厌烦,以至于我不想再制作应用程序了。所以我决定尝试在我自己的应用程序中修复它。
当我最小化一个应用程序(例如,Visual Studio、Windows Explorer、Internet Explorer、Chrome 或任何其他曾经开发过的应用程序)并将其放置一段时间后,会有很大的延迟(介于 3 到 20 秒之间)从我单击任务栏中的图标到它再次达到 WindowState.Normal 的时间。
这是为什么?为什么 Windows 在桌面上最小化进程时不会暂停进程?我如何在自己的应用中解决这个问题?
我考虑过使用计时器。当我最小化我的应用程序时启动计时器,让它运行一段时间,然后说,在它被最小化大约 10-15 分钟后,如果它还没有恢复,开始释放一些资源以释放一些内存- 我认为这会使响应时间更快,这样当我尝试取消最小化我的应用程序时,就不会觉得我在急诊室等待。但我不确定 Timer 是否是处理这个问题的正确方法,我什至不确定这是否是正确的解决方案。我只知道我已经厌倦了这种情况,我需要做点什么。
以前有人处理过这个吗?是否有任何文章或 MSDN 文档可以解决此类问题?
如何更好地管理我的应用中的资源,以便它们在一段时间不活动时不会变得如此缓慢?
- 此问题对任何应用程序都很常见。不只是我的。
编辑:我不知道该怎么做。每当有东西实现IDisposable 时,我总是会很好地利用using(),我只是不知道还有什么方法可以尝试释放一些资源或加快响应时间。
【问题讨论】:
-
是您的应用程序导致了减速还是其他原因?如果它是空闲的并且消耗资源..你可以保证它是内存泄漏。
-
我遇到了类似的问题,但情况恰恰相反。请参阅我的question
-
谢谢@SimonWhitehead。现在,大家伙使用最多的内存和 CPU:Internet Explorer(358MB 内存),只打开了 2 个选项卡(google 和 SO)。在任何时候,我的应用程序在任务管理器中只有大约 1-5mb 内存和 0.n% cpu,但是从任务栏恢复它们时它们的响应速度非常慢。我认为这可能是内存泄漏,但我什至尝试过使用一组完全不同的应用程序(例如,用 Chrome 替换 IE;用基于 Web 的邮件(chrome 内部)替换 Outlook;用记事本替换 Evernote。只是似乎没有无论打开什么应用程序,它总是会发生。
-
如果您的应用程序工作集稳定并且您的 PC 实际上并没有被占用资源。我会说这与您的应用程序完全无关。
-
哎呀..答案的链接被破坏了..这是完整的article
标签: c# .net memory memory-management