C記憶體釋放,c 記憶體釋放問題

2022-11-01 05:45:25 字數 3311 閱讀 5027

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速度的提升了 我的電腦 屬性 高階 效能 設定,就可以 問題描述 如何設定虛擬記憶體 簡易步驟 我的電腦 右鍵 屬性 高階 ...