gpt4 book ai didi

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

转载 作者:IT王子 更新时间:2023-10-29 03:53:07 26 4
gpt4 key购买 nike

静态变量是否在用户 session 中保留它们的值?

我有一个 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 调用 Get值按钮。他会将什么视为值(value)?

最佳答案

Does static variables retain their values across user sessions?

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

While this works in single-user environment, What happens if there are 2 users simultaneously logged in from two computers, User 1 sets the value as 100, then User 2 sets the value as 200. after that user 1 invokes the Get Value button. What will he see as the value?

之后用户将看到 200。

关于c# - 多用户 ASP.NET Web 应用程序中静态变量的范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14154892/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com