用户
 找回密码
 立即注册

65

主题

183

帖子

891

积分

高级会员

Rank: 4

积分
891
发表于 2016-5-19 17:49:11
Session是会话变量,有没有全局(所有客户端共享,共用的)变量呢? 类似ASP中的Application变量。
使用道具 举报 回复
发表于 2016-5-20 10:27:13
全局变量写入是比较灵活的方式,可以写一个全局类,在全局类里面定义全局变量,例如:
  1. public class GlobalVariable
  2. {
  3.    private static string mUser;
  4.         /// <summary>
  5.         /// 获取用户
  6.         /// </summary>
  7.         /// <value></value>
  8.         /// <returns></returns>
  9.         /// <remarks></remarks>
  10.         public static string User {
  11.                 get {
  12.                         return mUser;
  13.                 }
  14.                set {
  15.                         mUser=value;
  16.                 }
  17.         }
  18. }
复制代码


使用道具 举报 回复 支持 反对
发表于 2016-5-22 11:53:29
Lincy.Lin 发表于 2016-5-20 10:27
全局变量写入是比较灵活的方式,可以写一个全局类,在全局类里面定义全局变量,例如:

...

这样的确可以,如果平台能封装一个类似session的 KV 就更优雅一点了。
使用道具 举报 回复 支持 反对
发表于 2016-5-23 09:51:01
Csharp 发表于 2016-5-22 11:53
这样的确可以,如果平台能封装一个类似session的 KV 就更优雅一点了。

使用this.Client.Session是基于会话的变量,添加一个基于KV的全局变量一方面对于多线程操作是没有控制的,另外一方面也不包含基于全局变量的Function,所以为了使用上的灵活性,建议需要开发者自己实现全局变量。
使用道具 举报 回复 支持 反对
发表于 2016-5-24 14:46:16
本帖最后由 Csharp 于 2016-5-24 14:47 编辑
oudi 发表于 2016-5-23 09:51
使用this.Client.Session是基于会话的变量,添加一个基于KV的全局变量一方面对于多线程操作是没有控制的 ...

可以在多线程上,借用 asp 中的  lock    unlock  的方式,写入读取时 lock 完毕后  unlock  类似这种代码:
Application.Lock
Application("NumVisits")=Application("NumVisits") + 1
Application.Unlock
使用道具 举报 回复 支持 反对
发新帖
您需要登录后才可以回帖 登录 | 立即注册