我是个新手,用C#编一个小软件,软件正常运行时占用大概25兆的内存,但是当我用软件查询数据库某表的数据并显示在datagridview上时,软件的内存变成了60多兆,(查询了大概1000多调数据),请问给位有什么方法可以把内存都释放掉?
c# 释放资源的问题
实现 IDisposable 实例化类时用USERING 或者手动调用Dispos Dispos方法里面释放资源,加上CG结束进程
C# 资源释放问题
Dispose是用来释放非托管资源的,并不会释放托管资源,new是从托管堆中分配得资源,只能通过GC回收,无法手动释放。你可以使用System.GC.Collect()来强制进行GC,用System.GC.WaitForFullGCComplete()等待GC完成。如果确实需要,使用System.Runtime.InteropServices.Marshal来手动申请和释放非托管内存,但是,其...
C#file类释放资源的问题
每次create的时候,是新生成一个stream流,所以,两个流操作一个文件,必然会读写冲突。解决方案也很简单,把create程程的流赋给一个变量就可以了,因为定义的变量是对流的映射而不是拷贝,所以无论你对这个变量进行任何操作,实际上都只是对同一个stream的操作,不会读写冲突。比如这样 FileStream fs ...
C# new后,怎样立即释放资源,不等待系统自动回收,要手动释放
将该对象= null,然后GC.Collect。不过非常不推荐这样做。如果该对象有非托管资源的话,得自己继承IDispose接口了。释放就直接调用即可。
C#中,GDI释放资源(Dispose)的问题
还是会留在窗体上的 ,不会擦除掉
C# 这样要如何释放资源?还是直接=null?
对于new出来的东西,自己有dispose方法,不需要你自己实现。另外,C#有垃圾回收处理,一般不需要自己释放,局部变量方法结束自然就释放了。全局的或者多form时,才需要按需要自己释放。
(C#)内存消耗问题!
最小化的时候是因为此时窗体不活动,CLR 把此时不需要使用的数据放到虚拟内存里了,所以看上去内存消耗很小。但如果你查看虚拟内存的话,会发现,它反而会变大的 要想第一次内存就降低,可以在显示(shown事件)的时候先用代码将窗体最小化,然后再恢复正常,这样可以达到你要的效果 ...
c# 做的C\/S程序,在占的内存资源如何释放掉?
C# 内存管理是基于优化的收集方式,引入了代的机制(共分3代0、1、2),当0代充满时或内存紧张时,垃圾收集器会挂起当前线程自动收集0代没有被引用的新建的对象,1代充满时收集1代,2代充满时收集2代。见意最好不要手动进行GC的收集,这样会带来不必要的系统资源的浪费。如果不进行人工干预内存太...
c#中如何有效地释放内存?
还有其他地方引用X,则无法轻易释放X。采取策略在适当情况下使用WeakReference可避免一致性问题。对于释放非托管资源,可以使用Dispose方法。以File类为例,通过实现IDisposable接口,Dispose方法关闭文件并使File对象不可用,确保文件不再被访问。然而,File对象本身不一定在Dispose后被Finalize或收集。
关于C#中类的释放问题 class dispose...求专业回答...
C#托管资源释放就是component.Dispose(),具体人家做了什么,这个你可以去问微软,或者去问更懂得人,C#都是托管程序,很多东西都是封装的,你只能看到接口。。。CloseHandle(handle)使用来释放非托管资源的,非托管资源不归虚拟机保管,由系统保管,自然要CloseHandle(handle) (这是释放系统对象的API函数,...