一:IHttpModule的Init()只执行一次:
IHtttpModule.Init()方法是在Application启动时进行一些初始化操作,因此,该方法只需要而且也只会执行一次.
因此,在该方法里调用的方法也只会执行一次(我们可以在其中实现Timer,FileSystemWatcher等的操作).
当然,其中的Application相关事件是在这一步注册.
----
需要注意的是,有些情况下,Init()也会多次执行,比如使用框架时就会执行不止一次...
http://www.cnblogs.com/redfire0922/archive/2007/03/15/675549.html
这里有位朋友就碰到类似问题.

二:内存回收,Dispose,Close,Finalie(C#中的析构函数)
.NET中的资源分托管和非托管,所谓的托管是指CLR(通用语言运行时)中进行管理的资源,它可以由CLR自动进行内存回收.
也就是大家熟知的GC(垃圾回收机制).
而对于 非托管资源,比如数据库连接,COM连接等,那么需要手动清理回收资源.
清理非托管资源,我们可以用析构函数来执行,虽然它的执行时机不确定,但终究会被执行.
当然还有Dispose()和Close()方法,两者的区别在于,Close()后还要以用Open()打开,而Dispose()则是彻底销毁.

---
使用析构函数时,需要GC.Collect()才会执行到(GC,Collect()在自动回收机制中会自动执行,也可以显式调用它)
而Dispose()需要显式地调用,或者使用using()
,但是,需要注意:在用析构函数时,至少分两步走:调用函数,回收内存.
那么,在用using()或*.Dispose()后,GC还会再去执行析构函数.
因此,在Dispose()里,加上GC.SupressFinalize(this)来防止再次调用析构函数.

总结:
Dispose()和Close()需要显示调用,Dispose()可以通过using()调用.析构函数无法显式调用.
Dispose()和析构函数是销毁对象,而Close()是关闭,可以通过Open()再开.
析构函数调用时机不确定,而Dispose()在显式或Using()时执行,Close()在显式时执行.
三者都是用来销毁非托管对象.
一段经典的C#-Dispose:

 1private bool _isDisposed=false;
 2~MyTest()
 3        {
 4            //this.Close();
 5            Dispose(false);
 6        }
 7        /**//// <summary>
 8        /// 内存释放,需要此类实例显式调用,如sql.Dispose();或Using()
 9        /// </summary>
10        public void Dispose()
11        {
12            //IDisposable dispose = this as IDisposable;
13            //if(dispose!=null)
14            //{
15            //    dispose.Dispose();
16            //}
17            Dispose(true);
18            GC.SuppressFinalize(this);
19        }
20        protected virtual void Dispose(bool disposing)
21        {
22            if(!_isDisposed)
23            {
24                if(disposing)
25                {
26               //托管资源的释放    
27                }
28               //非托管资源的释放
29                _isDisposed = true;
30            }
31        }

转载于:https://www.cnblogs.com/McJeremy/archive/2008/07/29/1255517.html

近期几个ASP.NET开发经验(二)相关推荐

  1. ASP 三十二条精华代码

    整理收藏: ASP 三十二条精华代码 1. οncοntextmenu="window.event.returnvalue=false" 将彻底屏蔽鼠标右键 <table b ...

  2. ASP.NET开发经验积累

    在开发过程中,通过摸索查资料,收集了一些值得提出来的经验: a) 相对于原来的for语句foreach具有更好的执行效率,foreach的平均花费时间只有for的30%.通过测试结果在for和fore ...

  3. 七天学会ASP.NET MVC (二)——ASP.NET MVC 数据传递

    通过第一天的学习之后,我们相信您已经对MVC有一些基本了解. 本节所讲的内容是在上节的基础之上,因此需要确保您是否掌握了上一节的内容.本章的目标是在今天学习结束时利用最佳实践解决方案创建一个小型的MV ...

  4. [转载]ASP.NET开发经验积累

    在开发过程中,通过摸索查资料,收集了一些值得提出来的经验: a)      相对于原来的for语句foreach具有更好的执行效率,foreach的平均花费时间只有for的30%.通过测试结果在for ...

  5. ASP.NET实现二维码(QRCode)的创建和读取

    一.项目引用QRCode的DLL文件(ThoughtWorks.QRCode.dll) 二.ASPX页面(两个jquery的js文件请自行去官网下载): [html]  <html xmlns= ...

  6. 一周死磕fastreport ----ASP.NET (二)

    前一章忘了为什么要死磕fastreport  了,这次简单说一下,  公司本来有一个winfrom  窗体打印程序,可是上司觉得太麻烦了,(前几天 我一直在做web版看板,然后发现还不错,于是 想把公 ...

  7. ASP.NET开发经验积累(转发)以后会陆续放上新的

    Visual Studio.Net 技术Tip 文章类型:高级应用 日期:2005-5-31 作者:bestone 人气: 10 在网上Search资料的时候,时常能找到一些技术上的小技巧,可能一时之 ...

  8. asp.net 生成二维码,带logo,带下方文字

    目标可以生成带网址的信息的二维码,可以是带logo 或者不带logo,或者下方带一行说明文字 nuget 下载二维码管理包 public static Bitmap GenerateQrCode(st ...

  9. 一键搭建asp php mysql_一键快速搭建Apache+PHP+MySQL+ASP平台(二)

    下载php网站程序建自己的网站 我们这里以知名的PHP开源网站管理程序phpcms2008为主,运用phpCMS2008可架设包括:新闻文章+图片+下载+分类信息+问答系统+自定义系统等多功能的网站, ...

最新文章

  1. linux应用程序跑飞,linux 试题
  2. ContestHunter暑假欢乐赛 SRM 08
  3. typescript 怎么表示当前时间减一个月_TypeScript 入门知识点总结
  4. 题目1076:N的阶乘
  5. jzoj3854-分组【树状数组,线段树】
  6. global position
  7. .Net Attribute特性
  8. java-字符串反转
  9. 日志系统新贵 Loki,确实比笨重的 ELK 轻
  10. python按键退出循环_python – 按退出键退出循环
  11. 手机文件上传ftp服务器,安卓手机文件上传 ftp服务器
  12. 局域网共享文件搭建方法
  13. 混淆矩阵 Confusion Matrix
  14. 一种电池过放电保护电路
  15. linux 查看 man 路径配置文件 man.config,linux man 1,2,3....
  16. AUTOCAD——命令重复、撤销与重做
  17. C ++ Hello World和可爱的无情彩虹
  18. 航测无人机-任务规划模块 竞品分析
  19. Android Qcom Display学习(五)
  20. 如何修改app在模拟器上的名字

热门文章

  1. java异常处理试题答案_JAVA异常处理试题及答案
  2. python读取只读word只读_人生苦短我学Python——Word处理之快速Word转PDF
  3. js 动态获取表格中的值并修改其他表格+js 动态拼接字符串
  4. QNNPACK高性能前向内核库全面剖析——引言篇
  5. JLink接口的SWD接法
  6. 动态规划/贪心 - 无重叠区间
  7. 【Linux】Makefile文件
  8. Python生成随机数总结
  9. python的16.1节课后练习16-2比较希特卡和死亡谷的气温的问题,最后图像为什么出现乱码?
  10. CTFshow——Pwn(1)