C#代码在应用程序状态下将项目增加1

时间:2016-06-23 20:41:59

标签: asp.net

如何编写C#代码,在ASP.net中名为“total”的应用程序状态中将项目增加1?

2 个答案:

答案 0 :(得分:0)

为了修改任何Application变量,您需要在修改它之前将其锁定,以确保并行请求之间不会发生意外更改。

一个例子

 Application.Lock();
 var userCount = Convert.ToInt32(Application["OnlineUserCount"]);
 Application["OnlineUserCount"] = ++userCount;
 Application.UnLock();

Application.Lock确保只有一个线程或请求可以访问变量,其他请求在队列中等待。您可以根据需要修改值,并Application.Unlock释放锁,以便其他请求可以对Application变量起作用。

请注意,如果你依赖这个,可能会有性能损失!!

  

注意:页面不需要锁定应用程序对象来编辑   申请集。如果一个页面尝试编辑该应用程序   没有锁定的集合和第二页也尝试编辑   收集,IIS不发送任何错误,并且Application对象最终结束   处于不一致的状态。

答案 1 :(得分:0)

更好地使用

  

静态变量

  

Interlocked.Increment

像这样:

private static int total= 0;

public static void Increment()
{
    Interlocked.Increment(ref total);
}