這是Windows的常見問題。多年來,這是我注意到的事情,它真的讓我感到害怕,因爲我不想再製作應用程序。所以我決定嘗試在我自己的應用程序中修復它。當我最小化一個應用程序(例如,Visual Studio,Windows資源管理器,Internet Explorer,Chrome或任何有史以來的任何其他應用程序)並將其保留一段時間時,會有一個巨大的延遲3到20秒)之間點擊任務欄中的圖標,直到它再次到達WindowState.Normal。如何在x時間內將應用程序最小化時減少內存消耗
這是爲什麼? Windows在桌面上最小化時爲什麼不暫掛進程?我該如何在自己的應用程序中解決這個問題?
我想過使用計時器。當我最小化我的應用程序時啓動計時器,讓它運行一段時間,並說,大約10-15分鐘後,它被最小化,如果它還沒有恢復,開始釋放一些資源,希望釋放一些內存 - 當我嘗試取消最小化我的應用程序時,我認爲這會使響應時間更快,從而不會感覺到我在ER中等待。但我不確定Timer是否是解決這個問題的正確方法,我甚至不確定這是否是正確的解決方案。我所知道的是,我對此感到厭倦,我需要做點什麼。
有沒有人處理過這個?是否有任何文章或有MSDN文檔解決這樣的事情?
如何更好地管理我的應用程序中的資源,以便在不活動一段時間時不會變得太慢?
- 此問題在任何應用程序中都很常見。不只是我的。
編輯:我不知道該怎麼辦。每當有東西實現IDisposable
時,我總是很好地利用using()
,而我只是不知道如何嘗試釋放一些資源或加快響應時間。
它是你的應用程序造成緩慢或另一個?如果它閒置並耗費資源..你可以保證它是一個內存泄漏。 –
我有一個類似的問題,但這是完全相反的..看我的[問題](http://stackoverflow.com/questions/4863016/is-it-true-that-in-net-the-garbage-collector-gets - 當你最小化時) - – Anirudha
謝謝@SimonWhitehead。現在,大傢伙使用最多的內存和CPU:Internet Explorer(358MB內存),只有2個選項卡打開(谷歌和SO)。我的應用程序在任何時間點,在任務管理器中只有大約1-5mb的內存和0.n%的cpu,但從任務欄恢復時它們的響應速度非常慢。我認爲這可能是內存泄漏,但我甚至嘗試過使用一組完全不同的應用程序(例如,將Chrome替換爲IE;將Outlook替換爲基於Web的郵件(在Chrome中);用記事本替換Evernote。只是似乎無所謂應用程序是開放的,它總是會發生。 –