-2

这是 Windows 的常见问题。多年来,我已经注意到了这一点,这真的让我感到厌烦,以至于我不想再制作应用程序了。所以我决定尝试在我自己的应用程序中修复它。

当我最小化一个应用程序(例如,Visual Studio、Windows Explorer、Internet Explorer、Chrome 或任何其他曾经制作的应用程序)并将其放置一段时间后,两者之间会出现巨大的延迟(介于 3 到 20 秒之间)我单击任务栏中的图标直到它再次达到 WindowState.Normal 的时间。

为什么是这样?为什么 Windows 在桌面上最小化进程时不暂停进程?我怎样才能在我自己的应用程序中解决这个问题?

我考虑过使用计时器。当我最小化我的应用程序时启动计时器,让它运行一段时间,然后说,在它被最小化大约 10-15 分钟后,如果它还没有恢复,开始释放一些资源以释放一些内存- 我认为这会使响应时间更快,这样当我尝试取消最小化我的应用程序时,就不会觉得我在急诊室等待。但我不确定 Timer 是否是处理这个问题的正确方法,我什至不确定这是否是正确的解决方案。我所知道的是我已经厌倦了这个,我需要做点什么。

以前有人处理过这个吗?是否有任何文章或是否有 MSDN 文档来解决此类问题?

如何更好地管理我的应用程序中的资源,以便它们在一段时间不活动时不会变得如此缓慢?

  • 这个问题对任何应用程序都很常见。不只是我的。

编辑:我不知道该怎么做。using()每当有东西实现时,我总是会好好利用IDisposable,我只是不知道我还能如何尝试释放一些资源或加快响应时间。

4

1 回答 1

2

您描述的症状似乎表明您的机器缺少物理内存。当您最小化一个应用程序并激活另一个应用程序时,最小化的应用程序会将其许多内存页面换出到磁盘。当您重新激活应用程序时,属于其他应用程序的页面会被换出到磁盘,而之前换出的属于您刚刚激活的应用程序的页面会被换出到物理内存中,由于硬盘驱动器相对较慢,这需要很长时间。解决方案:增加更多内存,相对便宜。如果您的操作系统是 32 位,则最高可以达到 4GB。如果您的操作系统是 64 位,那么无论您的主板支持什么都是限制。

于 2013-07-01T04:49:14.470 回答