asp.net中的静态变量?

时间:2011-11-04 04:01:55

标签: asp.net

在Web应用程序中,我使用静态变量,当多个用户访问静态变量声明的同一页面时,它可能是冲突变量?,例如我将会话值存储在静态变量中,如果这两个员工他们一次访问同一页面可能会错误处理na?。

4 个答案:

答案 0 :(得分:1)

是的,可能会有冲突。你最终可能会遇到许多意想不到的行为。避免使用它们,因为您可能遇到并发问题。

答案 1 :(得分:1)

可能会发生冲突,变量的状态在整个应用域中共享。

答案 2 :(得分:0)

静态变量每个appDomain只有一个值。这意味着应用程序中的所有请求都将共享相同的内容。这可能会导致冲突。因此,除非您非常确定行为,否则永远不要使用静态变量,而是使用会话。

答案 3 :(得分:0)

是的,这就是为什么在Web应用程序中使用静态变量时应该非常小心的原因。您将在并发问题中运行,因为为请求提供服务的多个线程可以修改变量的值.Static Variables Scope是应用程序级别。如果你在里面存放一些东西,那就错了。如果一个用户保存数据,同时另一个用户访问同一页面,那么他也将获得相同的数据。因此,请尝试将值存储在Sessions中。

虽然这适用于单用户环境,但在多用户环境中会发生什么,如果有两个用户同时从两台计算机登录,则用户1将值设置为200,然后用户2将值设置为400。之后,用户1调用“获取值”按钮。他认为什么是价值?