gpt4 book ai didi

c# - Web 应用程序中的静态变量

转载 作者:可可西里 更新时间:2023-11-01 08:57:51 24 4
gpt4 key购买 nike

我可以在我的网络应用程序中使用静态变量吗? static 的替代品是什么?当我在页面中使用静态变量并且多个用户使用该应用程序时,它会产生冲突数据(不正确的数据)。

使用静态成员有什么限制?

静态成员是否在内存中共享?

最佳答案

考虑将您的共享变量存储在 HttpApplication 对象或 Cache 对象中。

但是,如果您尝试为每个用户单独存储值,则应将这些值存储在 Session 变量中。

Asp.Net 中的静态变量在 w3svc.exe 进程的内存空间中共享,并且不是线程安全的。应用程序的任何用户都可以访问和修改它们。这可能会导致不需要的修改,除非您围绕这些值的存储编写自己的锁定机制。

你应该尝试这样的语法:

Application["KEY"] = value;

存储共享应用程序范围的数据和

Session["KEY"] = value;

以每个用户为基础存储数据

您可以使用 WebCache 对象在具有过期条件的网络服务器内存中存储数据。其语法类似于:

Page.Cache.Insert("KEY", "VALUE", null, Cache.NoAbsoluteExpiration, Cache.NoSlidingExpiration, CacheItemPriority.Normal, null);

有关管理 WebCache 对象的语法的更多信息,请访问:

http://msdn.microsoft.com/en-us/library/system.web.caching.cache.aspx

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

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