您的位置:程序门 -> .net技术 -> c#



c#中如何有效回收内存资源


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


c#中如何有效回收内存资源[已结贴,结贴人:kingonehappy]
发表于:2007-03-19 10:49:09 楼主
c#编写了一个软件,但现发现程序运行占用内存,越来越大,使用了dispose()来释放窗体,控件资源,并使用system.gc.collect()强制clr回收资源   ,但好像收效不大。请问有什么好地解决办法?
发表于:2007-03-19 11:16:191楼 得分:0
没有人帮帮我啊   是不是问题太菜了??
发表于:2007-03-19 11:17:062楼 得分:0
那就把代码全改成用指针操作的,然后释放....

gc的效果不是太好,总有回收不了的东东...
发表于:2007-03-19 11:53:123楼 得分:0
晕..
发表于:2007-03-19 14:19:574楼 得分:0
还有其他办法吗?
发表于:2007-03-19 14:33:495楼 得分:5
释放一个   s   字符串的内存

[dllimport( "kernel32.dll ",   entrypoint   =   "rtlzeromemory ")]
public   static   extern   bool   zeromemory(intptr   destination,   int   length);

string   s   ;
s   =   "123123123 ";
gchandle   gch   =   gchandle.alloc(   s   ,gchandletype.pinned   );
zeromemory(gch.addrofpinnedobject(),   s.length   *   2);
gch.free();
发表于:2007-03-19 14:36:426楼 得分:15
如果楼主确认自己把窗体   空间   还是数据(dataset,datatable等等)   都释放了  
那就让.net自己管理内存吧
我也有发现   用c#写个再小的程序也是要占用一定百分比的内存,
超过后.net自己会释放掉一部分的
发表于:2007-04-04 22:49:297楼 得分:0
比较郁闷或许是自己水平太菜。编了一个稍大的软件,内存问题一直没有较好的解决。不知是不是.net内存回收机制自己有问题。但我以尽力去操控资源了


快速检索

最新资讯
热门点击