2011-11-04 70 views
2

在Web应用程序中,我使用静态变量,当多个用户访问静态变量声明的同一页面时,它可能是冲突变量?,例如我将会话值存储在静态变量中,如果两个员工是一次访问相同的页面可能会导致错误的流程na ?.asp.net中的静态变量?

+0

可能重复的[静态变量在asp.net页面](http://stackoverflow.com/questions/5217697/static-variable-in-asp-net-page) –

回答

1

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

+0

好的谢谢伊卡洛斯,如果我把私人静态变量然后什么hapen –

+0

@Suryasasidhar:同私人问题。没有区别。无论如何,静态变量需要什么?你能详细说明一下你的意图吗? – Icarus

+0

如果我想要保持一个值通过页面,如果页面回发发生然后我也想维护价值,所以这是最好的过程。 –

1

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

0

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

0

是的,这就是为什么在Web应用程序中使用静态变量时应该非常小心。由于多个服务于请求的线程可以修改变量的值,因此您将在并发问题中运行。静态变量作用域是应用程序级别。如果你存储了一些东西,那么它是一个错误的东西。如果一个用户保存数据,同一时间另一个用户访问同一页面,那么他也会得到相同的数据。所以尝试将值存储在会话中。

虽然这在单用户环境下工作,但如果有两个用户同时从两台计算机登录,多用户环境会发生什么情况,用户1将该值设置为200,然后用户2将该值设置为400之后,用户1调用Get Value按钮。他认为价值是什么?