gpt4 book ai didi

c# - ASP.Net MVC 应用程序中的线程安全全局变量

转载 作者:行者123 更新时间:2023-11-30 20:53:02 26 4
gpt4 key购买 nike

我需要在我的 ASP.Net MVC 应用程序中实现一个多线程全局变量。

A ConcurrentDictionary<T>这将是理想的,但我如何让我的应用程序中的每个用户 session 都可以访问它?

这样的事情会成功吗?

public static class GlobalStore
{
public static ConcurrentDictionary<string, DateTime> GlobalVar { get; set; }
}

我需要多个用户才能读写这个对象。

最佳答案

您可以像下面那样使用 HttpContext.current.Application

创建对象

HttpContext.Current.Application["GlobalVar"] = new ConcurrentDictionary<string, DateTime>();

获取或使用对象

ConcurrentDictionary<string, DateTime> GlobalVar = HttpContext.Current.Application["GlobalVar"] as ConcurrentDictionary<string, DateTime>;

编辑:

使用静态变量而不是如下属性编辑静态类

public static class GlobalStore
{
public static ConcurrentDictionary<string, DateTime> GlobalVar;
}

现在在您的 global.aspx Application_Start 事件中使用新对象设置该变量,如下所示

GlobalStore.GlobalVar = new ConcurrentDictionary<string, DateTime>();

然后你就可以在你的应用程序中使用它了

    GlobalStore.GlobalVar["KeyWord"] = new DateTime();
DateTime obj = GlobalStore.GlobalVar["KeyWord"] as DateTime;

是的,ConcurrentDictionary 和静态变量在 .net 应用程序中都是线程安全的

关于c# - ASP.Net MVC 应用程序中的线程安全全局变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20347280/

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