I have an ASP.NET application in which I am writing this code in Application_OnStart event:
public virtual void OnStart(HttpApplication httpApplication)
{
MyClass.PopulateIndices();
}
Now, I know that App_Onstart
is fired only once, so my question is: do I need to add thread safety in this code, like:
lock(some object)
{
MyClass.PopulateIndices();
}
Is this lock()
really needed? Can multiple threads fire App OnStart
simultaneously?
It will be called just once. Definitely. You don't need any lock there.
From MSDN:
The Application_Start method is called only one time during the life cycle of an application.
Source: http://msdn.microsoft.com/en-us/library/ms178473.aspx
I tested this with some logging and Application_Start is executed only once (while, for example, Session_Start is executed at every user' session start).
you won't need the lock.
I recommend you just serviceAutoStartProviders
if you are using .NET 4.0 instead:
Auto-Start ASP.NET Applications (VS 2010 and .NET 4.0 Series)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With