我有ASP.NET MVC应用程序,我需要为所有用户(和访客(提供全球计数器。我的意思是,任何用户都可以更改它(有时是从不同的线程中(,但是所有用户对所有用户都是常见的。所以,
1。为此,我的代码中的某个地方仅创建静态变量是个好主意?
2。有可能的问题吗?
还有其他建议吗?非常感谢!
在这里说什么很棘手。静态本身没有问题。这取决于您的使用方式。正如您所说,您将一些全球计数器放在可变中。因此多个线程将修改它;正确的?确保此呼叫是线程安全的。否则计数器将是错误的。
如果这是很少写的,并且大多是只读的价值,那根本不是问题。
如果这是您在设计时间已知的值,更好地使用const
。
您还应该考虑IIS回收池。在这种情况下,将创建新的应用程序实例,并存在静态变量的两个副本。
如果这一切都不会为您造成问题,则静态是可以的。