当前位置: 首页 > news >正文

怎么建立类似百度问答的网站渔具网站建设策划书前言

怎么建立类似百度问答的网站,渔具网站建设策划书前言,wordpress加载插件下载,建设部监理工程师考试网站C#中IDisposable 更多2014/9/7 来源#xff1a;C#学习浏览量#xff1a;4185学习标签#xff1a; IDisposable本文导读#xff1a;C#中IDisposable接口的主要用途是释放非托管资源。当不再使用托管对象时#xff0c;垃圾回收器会自动释放分配给该对象的内存。但无法预测进…C#中IDisposable 更多2014/9/7 来源C#学习浏览量4185 学习标签 IDisposable 本文导读C#中IDisposable接口的主要用途是释放非托管资源。当不再使用托管对象时垃圾回收器会自动释放分配给该对象的内存。但无法预测进行垃圾回收的时间。另外垃圾回收器对窗口句柄或打开的文件和流等非托管资源一无所知。将此接口的Dispose方法与垃圾回收器一起使用来显式释放非托管资源。当不再需要对象时对象的使用者可以调用此方法。 在Net中由GC垃圾回收线程掌握对象资源的释放程序员无法掌控析构函数的调用时机。对于一些非托管资源比如数据库链接对象等需要实现IDisposable接口进行手动的垃圾回收。那么什么时候使用Idisposable接口以及如何使用呢   一、IDisposable的接口定义如下   public interface IDisposable{    // Summary:    //     Performs application-defined tasks associated with freeing, releasing, or    //     resetting unmanaged resources.    void Dispose();}   二IDisposable基本应用   1.定义一个实现了IDisposable接口的类 C# 代码   复制 public class CaryClass :IDisposable{public void DoSomething() {Console.WriteLine(Do some thing....);}public void Dispose() {Console.WriteLine(及时释放资源);}}2、两种方式来调用   1、使用Using语句会自动调用Dispose方法 using (CaryClass caryClass new CaryClass()) { caryClass.DoSomething(); }   2、现实调用该接口的Dispose方法 CaryClass caryClass new CaryClass(); try {caryClass.DoSomething(); } finally {IDisposable disposable caryClass as IDisposable;if (disposable ! null)disposable.Dispose(); }     三、IDisposable使用实例 C# 代码   复制 public class DisposablClass : IDisposable{//是否回收完毕bool _disposed;public void Dispose() {Dispose(true); GC.SuppressFinalize(this);}~DisposableClass() {Dispose(false);}//这里的参数表示示是否需要释放那些实现IDisposable接口的托管对象protected virtual void Dispose(bool disposing) {if(_disposed) return; //如果已经被回收就中断执行if(disposing) {//TODO:释放那些实现IDisposable接口的托管对象}//TODO:释放非托管资源设置对象为null_disposed true;} }   四、IDisposable实例分析   Dispose()方法 当需要回收非托管资源的DisposableClass类就调用Dispoase()方法。而这个方法不会被CLR自动调用需要手动调用。   ~DisposableClass()析构函数 当托管堆上的对象没有被其它对象引用GC会在回收对象之前调用对象的析构函数。这里的~DisposableClass()析构函数的意义在于告诉GC你可以回收我Dispose(false)表示在GC回收的时候就不需要手动回收了。   虚方法Dispose(bool disposing)   1、通过此方法所有的托管和非托管资源都能被回收。参数disposing表示是否需要释放那些实现IDisposable接口的托管对象。   2、如果disposings设置为true就表示DisposablClass类依赖某些实现了IDisposable接口的托管对象可以通过这里的Dispose(bool disposing)方法调用这些托管对象的Dispose()方法进行回收。   3、如果disposings设置为false,就表示DisposableClass类依赖某些没有实现IDisposable的非托管资源那就把这些非托管资源对象设置为null等待GC调用DisposableClass类的析构函数把这些非托管资源进行回收。   4、另外以上把Dispose(bool disposing)方法设置为protected virtual的原因是希望有子类可以一起参与到垃圾回收逻辑的设计而且还不会影响到基类。 比如有这样的一个子类   C# 代码   复制 public class SubDisposableClass : DiposableClass{private bool _disposed; //表示是否已经被回收protected override void Dispose(bool disposing) {if(!_disposed) //如果还没有被回收 {if(disposiing) //如果需要回收一些托管资源 {//TODO:回收托管资源调用IDisposable的Dispose()方法就可以}//TODO回收非托管资源把之设置为null等待CLR调用析构函数的时候回收_disposed true;}base.Dispose(disposing);//再调用父类的垃圾回收逻辑} }五、IDisposable总结 当我们自定义的类及其业务逻辑中引用某些托管和非托管资源就需要实现IDisposable接口实现对这些资源对象的垃圾回收。 转载于:https://www.cnblogs.com/lasthelloworld/p/5011474.html
http://www.sadfv.cn/news/354070/

相关文章:

  • 凡科建站网站怎么保存发给别人用php写的网站有哪些
  • 高端网站建设文案建立网站目录结构的原则
  • 网站推广渠道类型深圳住建局官网查询系统
  • 网站中的下拉菜单崂山区建设管理局网站怎么了黑
  • 象山县城乡建设局网站网站首页界面设计
  • 机电工程东莞网站建设技术支持龙岩天宫山要爬多久
  • 优化网站排名如何宁德城乡建设部网站首页
  • 毕业设计成品网站深圳网站建设乐云seo
  • 系统网站怎么做的成都网站建设、
  • 网站建设公司公司商城微网站创建
  • 网站规划的原则有哪些建设银行网站网址是什么
  • 长沙优化网站关键词免费域名映射
  • 人脉做的最好的网站建设银行河南省分行招聘网站
  • 长沙优质营销网站建设设计中跃建设集团网站
  • 乐清门户网站弄几个的网站
  • 网站 建设 汇报美篇app怎么制作
  • 肇庆做网站设计如何推广网站架构
  • 如何做一个收费的网站一般网站建设需要多少钱
  • 创意网站建设策划方案wordpress 数据库解析
  • 彩票网站怎么做上海企业网站制作费用
  • 口碑好的常州网站优化免费咨询法律援助电话号码
  • 阿里巴巴专门做外贸的网站网络技术服务是干什么的
  • 旅游网站开发开题报告平面设计网上接单一个月能赚多少
  • 做不了飞机要看什么网站太原哪里做网站好
  • 微网站如何建立网络广告策划流程有哪些?
  • 百度商桥怎样绑定网站怎么用电脑做网站虚拟空间
  • 网站建设济南云畅网络技术有限公司杭州市建设职业中心网站
  • 驻马店北京网站建设wordpress 页面文章
  • 新网网站模板网站设计工程师是it行业吗
  • 一起装修网官方网站出口电商平台有哪些