我们可以在Web应用程序中使用静态类型变量吗?许多用户会同时使用它们吗?

时间:2013-10-23 09:41:55

标签: c#-4.0

    private static List<string> _Process;
    public List<string> Process
    {
        get { return _Process; }
        set { _Process = value; }
    }

    private static string _IDsCombination;
    public string IDsCombination
    {
        get { return _IDsCombination; }
        set { _IDsCombination = value; }
    }

    private static int _QCID;
    public int QCID
    {
        get { return _QCID; }
        set { _QCID = value; }
    }

如上所述,我创建了一些静态变量,它们是否为所有用户共享相同的内存。

2 个答案:

答案 0 :(得分:1)

简短回答:很可能是。

答案很长: 静态成员在应用程序域中共享。

如果您在一台服务器上只在一个Web应用程序中运行您的网站,那么。这对于小型Web应用程序很常见。

但是,如果您在多个服务器/ Web应用程序(例如在Web场中)上运行,那么它们之间不共享(就像不共享inProc会话一样)。如果您在这种环境中运行,那么您需要查看其他解决方案,例如将其保存在数据库或缓存服务器中。

此外,如果您打算这样做,您应该使访问线程安全。见:Multithreading (MSDN)。在此特定示例中,您可能希望使用ReaderWriterLockMutex

答案 1 :(得分:0)

是 因为代码在服务器上运行,并且它在所有用户之间共享