有人会非常友好地解释或指向解释静态类和方法的范围如何与ASP.NET用户会话范围交互的文章。
以下是解释我问题的更具体情况:
一旦用户B命中数据,数据是否已经初始化?
如果用户A的asp.net会话在用户B访问网站之前到期会怎么样?
答案 0 :(得分:11)
只要进程正在运行,静态数据就会存在。它附在类型上。
如果初始化的数据是在静态上下文中,那么当用户B命中该方法时,它就已经初始化了。
会话与此无关 - 只有流程。
如果流程被回收,那么数据将不得不重新初始化。
答案 1 :(得分:2)
查看以下帖子:Why does my ASP.Net static function's "context" crossover between user sessions?
What is the scope of a Static Class?
C# Static variables - scope and persistence
http://msdn.microsoft.com/en-us/library/ms173138(v=vs.100).aspx
简而言之:
一旦用户B命中数据,数据是否已经初始化?
是
如果用户A的asp.net会话在用户B访问网站之前到期,该怎么办?
用户B将访问用户A初始化的数据
静态数据在您的整个应用程序域之间共享 Web应用程序。它在所有服务请求的线程中共享 webapp,它不以任何方式绑定到会话/线程/用户,而是绑定到 webapp作为一个整体。