In my asp.net application, i want to cache some data in the HttpApplicationState.
My code to set the data looks like this:
Application.Lock();
Application.Set("Name", "Value");
Application.UnLock();
When I read the documentation, it says that HttpApplicationState is implicitly thread safe. But on many blogs it's written that we should use Application.Lock() and Application.Unlock() while writing data to the HttpApplicationState.
On the other hand, I could not find any documentation which says that we should use lock while reading data from HttpApplicationState or while clearing it (using Application.RemoveAll()) method.
My questions are:
- Should not we take care of thread-safety when we are calling
RemoveAll? In my application, it's possible that one thread is reading a data fromHttpApplicationStatewhereas other thread could callRemoveAll. - In this case when reading and clearing
HttpApplicationStateis possible from two different threads at the same time, should reading too not be thread safe?