1樓:漆雕馳文沐維
1、這個流程確實構造了許多新的物件(panel、bitmapimage、button),所以記憶體**是必然的;
2、其次,由於c#託管的原因,有些臨時記憶體在頻繁的迴圈中可能來不及釋放,你可以在每次迴圈結束時呼叫gc.gettotalmemory(
true
)來強制**當前的垃圾;
如果強制gc還不行的話,那說明你的**就是要飈記憶體,那就得改你的流程了,沒其他的辦法了。
2樓:斯鳴玉冠輝
呼叫datagridview.rows.clear()以後
再呼叫一下gc.collect(),手動讓垃圾**器**一下試試
3樓:匿名使用者
如果強制datagridview = null會釋放所佔記憶體的,
有人說gc.collect()這種方法, .net的垃圾**用的是"代"的概念,英文generic.不積累到一定的記憶體佔用, 也不會立刻釋放,**.
使用 = null,強制引用型別指標指向null, 或者使用dispose()都可以立刻釋放資源所佔記憶體.
4樓:
datagridview.rows.clear()樓主清空的只是datagridview的顯示,並非根本上清除資料.
這就好比你的桌面上有好多d盤的快捷方式就算你把桌面清理的再幹淨你d盤的資料還是存在的.
具體的方法應該是清除table裡面的內容. table["表名"].clear();
這樣進行重新整理和寫入不會發生你說的那中情況.
5樓:
1. collect()
強制對所有代進行即時垃圾**。
2. collect(int32)
強制對零代到指定代進行即時垃圾**。
3. gc..::.collect 方法 (int32, gccollectionmode)
強制在 gccollectionmode 值所指定的時間對零代到指定代進行垃圾**。
6樓:
關於.net中,winform程式對記憶體的使用和管理,我寫有專題文章, 你可以去下面的地址檢視
7樓:心名過鍋友
你試試呼叫 gc.collect()來強制垃圾**。
8樓:匿名使用者
你是如何繫結資料的?
c# 記憶體釋放問題
9樓:
1、這個流程確實構造了許多新的物件(panel、bitmapimage、button),所以記憶體**是必然的;
2、其次,由於c#託管的原因,有些臨時記憶體在頻繁的迴圈中可能來不及釋放,你可以在每次迴圈結束時呼叫gc.gettotalmemory( true )來強制**當前的垃圾;
如果強制gc還不行的話,那說明你的**就是要飈記憶體,那就得改你的流程了,沒其他的辦法了。
10樓:
using system;
using system.diagnostics;
using system.runtime.interopservices;
[dllimport("kernel32.dll")]private static extern bool setprocessworkingsetsize(intptr process, int minsize, int maxsize);
////// 即時釋放記憶體
///public static void flushmemory()
11樓:匿名使用者
這個**沒問題,記憶體變大是迴圈呼叫的原因,不迴圈的時候自然就降下來了撒
c#控制元件銷燬釋放記憶體
12樓:匿名使用者
dispose();或者設定為null都是可以釋放記憶體的,雖然你立即呼叫了gc,但是系統去**還是需要一點時間的,gc只是告訴系統,我這裡有不用的垃圾了,快來**啊。(還有你讀取**的那個流,使用完畢以後記得close哦)
13樓:陽光的雷咩咩
你的fs沒有close,close了試試?
c# winform在關閉窗體的時候怎麼處理可以及時釋放記憶體?dispose方法應該不能解決這個問題
14樓:偉大的克洛澤
//不知道我的回答是不是你所需要的,希望對你有幫助啊~~
using system;
using system.collections.generic;
using system.componentmodel;
using system.data;
using system.drawing;
using system.linq;
using system.text;
using system.windows.forms;
using system.runtime.interopservices;
using system.diagnostics;
namespace releasememory_win
private void button1_click(object sender, eventargs e)
[dllimport("kernel32.dll")]
private static extern bool setprocessworkingsetsize(intptr process, int minsize, int maxsize);
private static void flushmemory() }}
15樓:
當窗體關閉了 ,.net會自動記憶體**的。
c#如何實現釋放記憶體?
c# winform 動態新增-刪除控制元件記憶體未釋放
16樓:
這個最好是看下新增控制元件部分的**,主要是建立例項的部分
17樓:
你只是移除了!!沒有釋放啊!!
while (panel1.controls.count > 0));}
18樓:龍的貓
remove 又不**記憶體
該有引用的還是要引用到物件上
C語言釋放結點問題
你好,你這個時候不能用free pdel 因為這個時候pdel已經不再指向6這個節點了。而是指向7.你應該另外定義一個指標變數p當pdel找到6時,先讓p pdel,這樣p就指向6了,然後再pdel next pdel next next,最後free p 即可。不懂可以追問 在執行pdel nex...
電腦記憶體不足 如何釋放記憶體空間,怎樣釋放電腦記憶體
建議用360安全衛士全面體檢修復,然後再用它的優化加速裡的啟動項,禁止一些軟體開機啟動,這樣處理後就可以正常。這樣的軟體有很多,超級兔子,優化大師,記憶體等,去下一個來用就行了。犧牲win7系統特效,換取速度最佳效能 1 win7系統主題 windows7預設的aero主題是很耗費記憶體的,在從登入...
如何釋放虛擬記憶體,怎麼清理電腦虛擬記憶體?
問題描述 ipad如何進行虛擬記憶體釋放 解決方案 1.安裝deb外掛虛擬記憶體 2.進入設定 通用 3.點效能 啟動虛擬記憶體,選擇你需求的大小4.重啟後你就可以感覺ipad速度的提升了 我的電腦 屬性 高階 效能 設定,就可以 問題描述 如何設定虛擬記憶體 簡易步驟 我的電腦 右鍵 屬性 高階 ...