在我的asp.net
应用程序中,我想在HttpApplicationState
.
我设置数据的代码如下所示:
Application.Lock();
Application.Set("Name", "Value");
Application.UnLock();
当我阅读文档时,它说这HttpApplicationState
是隐式线程安全的。Application.Lock()
但是在许多博客上都写到我们应该Application.Unlock()
在将数据写入HttpApplicationState
.
另一方面,我找不到任何文档说我们应该在从HttpApplicationState
或清除数据时使用锁(使用Application.RemoveAll()
)方法。
我的问题是:
- 我们在调用时不应该注意线程安全
RemoveAll
吗?在我的应用程序中,一个线程可能正在读取数据,HttpApplicationState
而另一个线程可以调用RemoveAll
. - 在这种情况下,当可以同时从两个不同的线程读取和清除
HttpApplicationState
时,读取是否也不是线程安全的?