Search code examples
c#asp.netlockingapplication-start

Thread safety on Application Start


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?


Solution

  • 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