.NET之ASP WebApplication快速入门(2)

jxyjzpf123

jxyjzpf123

2016-01-29 19:13

.NET之ASP WebApplication快速入门(2),.NET之ASP WebApplication快速入门(2)
  .NET之ASP Web Application快速入门(2) 
Application的生存期


一个ASP.NET application创建于服务器第一次被请求时,在那之前不会有ASP.NET代码在执行。接受第一次请求后,一个HttpApplication实例池被创建,并激活了Application_OnStart事件。HttpApplication实例处理这个请求及随后发生的请求,直到最后的实例退出,接着就触发Application_OnEnd事件。



注意,在每一个实例中HttpApplication的Init以及Dispose方法都被调用,因此在Application_OnStart 和 Application_OnEnd事件间将被调用多次。在一个ASP.NET
application中,只有这些事件在所有HttpApplication实例中被共享。

关于多线程


如果我们以application范围类型使用对象,我们就应该注意ASP.NET是并发处理请求的,从而Application对象可以被多个线程所访问。因此,如果下面例子中的代码在同一时间被不同的客户机访问,它就是危险的,可能不会达到预期目的。为对照方便,我们列出了使用VB、C#以及JScript三种语言编写的代码:







C#


<%
Application["counter"] = (Int32)Application["counter"] + 1;
%

VB

<%
Application("counter") = CType(Application("counter") + 1, Int32)
%

JScript

<%
Application("counter") = Int32(Application("counter") + 1);
%






为了实现安全的线程处理,我们可以通过Lock和Unlock方法处理这个Application对象。请看下面使用VB、C#以及JScript三种语言编写的代码:






C#


<%
Application.Lock();
Application["counter"] = (Int32)Application["counter"] + 1;
Application.UnLock();
%

VB

<%
Application.Lock()
Application("counter") = CType(Application("counter") + 1, Int32)
Application.UnLock()
%

JScript

<%
Application.Lock();
Application("counter") = Int32(Application("counter") + 1);
Application.UnLock();
%


 
展开更多 50%)
分享

猜你喜欢

.NET之ASP WebApplication快速入门(2)

ASP
.NET之ASP WebApplication快速入门(2)

.NET之ASP WebApplication快速入门(5)

ASP
.NET之ASP WebApplication快速入门(5)

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

.NET之ASP WebApplication快速入门(4)

ASP
.NET之ASP WebApplication快速入门(4)

.NET之ASP WebApplication快速入门(1)

ASP
.NET之ASP WebApplication快速入门(1)

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

.NET之ASP WebApplication快速入门(3)

ASP
.NET之ASP WebApplication快速入门(3)

.NET之ASP Web Form快速入门(2)

电脑网络
.NET之ASP Web Form快速入门(2)

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

ASP 3.0高级编程(七)

ASP 3.0高级编程(七)

你会用Word来当字典用吗?

你会用Word来当字典用吗?
下拉加载更多内容 ↓