[转]asp.net application,session,static 几种变量生命周期及用法
Application:是应用程序级变量,如果用到多个用户之间的通信的时候用,多用在网站计算器等,存活于整个应用程序运行周期
static:作用于应用程序整个运行周期,在内存中要比Session在服务器端要快。
Session:运行设定的时间周期. 只能用在某个特定会话期间,多用在存储某个会话区间用户的数据. 是用户变量,一个用户访问多个页面时可以保存数据到另一个页面,只要此用户不注销就可以 在asp.net web应用程序中,有时session会很容易过期,可把web.config 文件中的 sessionState mode r的设置改成如下: mode="StateServer" 即可解决
ViewState:页面变量,相当于页面全局变量,但是一旦退出当前页面,它就会丢失
application 与 static 的区别
Application是通过一个集合保存所有的对象。
强类型:
Application中保存的是object,对对象的保存和使用需要作cast动作。对于值类型更需要Box&UnBox。对性能的影响较大。
而static变量是强类型的对象。
线程同步:
Application将所有的对象放到一个集合,这样对访问集合中的任何对象都会锁定这个集合。
假如有Application["A"]、Application["B"]、Application["C"],有线程访问Application["A"]其他线程不能访问Application["B"] and Application["C"]。
而static变量,可以根据他们的作用分别放在不同的class当中。这样可以并行访问不同的static变量,而不存在线程安全问题。
1. 对static变量,做lock时。可以通过lock(typeof(classname))来锁定该变量所在的类的类型,达到线程同步的目的。
2. 由于Aplication,static 是全局变量,而我们是在多线程服务器环境写程序,对他们的使用需要注意线程安全的问题。
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/huwei2003/archive/2008/11/15/3304592.aspx
- ·IE里Cookie跨域不能..
- ·去掉隐藏asp.net编译..
- ·解决asp.net验证视图..
- ·找不到System.Web.S..
- ·web服务因URL意外地..
- ·C#2.0中,SerialPor..
- ·用C#编写ActiveX控件..
- ·用C#编写ActiveX控件..
- flash/flex/fcs/AIR(752)
- Asp.Net/C#/WCF(598)
- 操作系统及应用软件(376)
- JavaScript/Ajax(330)
- SQL及数据库(134)
- 黑客技术(115)
- Asp/VBScript(111)
- HTML/WML/CSS兼容/XML(102)
- PHP/apache/Perl(96)
- 网站排名及优化(96)
- 其他(75)
- showbo日志(66)
- lucene.net/分词技术(33)
- 计算机网络(26)
- 机械重工(26)
- C#设计模式(25)
- Google Maps开发(17)
- 日语学习(15)
- Canvas/VML/SVG(13)
- linux(11)
- 游戏开发(8)
- 正则表达式(5)
- Jsp/Java(4)
- ·详解SqlConnection连..
- ·C#实现的html内容截..
- ·asp.net web.config..
- ·asp.net<%--注释--%..
- ·ASP.NET环境配置常见..
- ·asp.net防止图片盗链..
- ·Session.Abandon的使..
- ·asp中缓存cache技术..
