Man*_*aha 47 c# asp.net static
静态变量是否在用户会话中保留其值?
我有一个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);
}
}
}
Run Code Online (Sandbox Code Playgroud)
虽然这适用于单用户环境,但如果有两个用户同时从两台计算机登录,会发生什么情况,用户1将值设置为100,然后用户2将值设置为200.之后用户1调用"获取值"按钮.他认为什么是价值?
Ica*_*rus 71
静态变量是否在用户会话中保留其值?
是的,这就是为什么在Web应用程序中使用静态变量时应该非常小心的原因.您将在并发问题中运行,因为为请求提供服务的多个线程可以修改变量的值.
虽然这适用于单用户环境,但如果有两个用户同时从两台计算机登录,会发生什么情况,用户1将值设置为100,然后用户2将值设置为200.之后用户1调用"获取值"按钮.他认为什么是价值?
之后用户将看到200.
and*_*ndy 22
静态变量范围是应用程序级别.
如果你在静态变量中存储一些东西,那么你做错了.
如果一个用户保存数据,同时另一个用户访问同一页面,那么他也将获得相同的数据.因此,您可以将值存储在Sessions中.
| 归档时间: |
|
| 查看次数: |
45168 次 |
| 最近记录: |