多用户ASP.NET Web应用程序中静态变量的范围

静态变量是否在用户会话中保留其值?

我有一个ASP.NET Web应用程序,其中有两个按钮。一个用于设置静态变量值,另一个用于显示静态变量值。

namespace WebApplication1

{

public partial class WebForm1 : System.Web.UI.Page

{

public static int customerID;

protected void Page_Load(object sender, EventArgs e)

{

}

protected void ButtonSetCustomerID_Click(object sender, EventArgs e)

{

customerID = Convert.ToInt32(TextBox1.Text);

}

protected void ButtonGetCustomerID_Click(object sender, EventArgs e)

{

Label1.Text = Convert.ToString(customerID);

}

}

}

尽管这在单用户环境中有效,但是如果有2个用户同时从两台计算机登录,会发生什么情况,用户1将值设置为100,然后用户2将值设置为200。在用户1调用“获取值”按钮之后。他将看到什么价值?

回答:

静态变量是否在用户会话中保留其值?

是的,这就是为什么在Web应用程序中使用静态变量时要非常小心的原因。您将在并发问题中运行,因为服务请求的多个线程可以修改变量的值。

尽管这在单用户环境中有效,但是如果有2个用户同时从两台计算机登录,会发生什么情况,用户1将值设置为100,然后用户2将值设置为200。在用户1调用“获取值”按钮之后。他将看到什么价值?

之后,用户将看到200。

以上是 多用户ASP.NET Web应用程序中静态变量的范围 的全部内容, 来源链接: utcz.com/qa/412573.html

回到顶部