Application Start上的线程安全

Roc*_*ngh 7 c# asp.net locking application-start

我有一个ASP.NET应用程序,我在Application_OnStart事件中编写此代码:

public virtual void OnStart(HttpApplication httpApplication)
{
    MyClass.PopulateIndices();
}
Run Code Online (Sandbox Code Playgroud)

现在,我知道App_Onstart只触发一次,所以我的问题是:我是否需要在此代码中添加线程安全性,例如:

lock(some object)
{
    MyClass.PopulateIndices();
}
Run Code Online (Sandbox Code Playgroud)

lock()真的需要吗?多个线程可以OnStart同时触发App 吗?

Ser*_* B. 10

它只会被调用一次.当然.你不需要任何锁定.

来自MSDN:

在应用程序的生命周期中,Application_Start方法仅被调用一次.

来源:http://msdn.microsoft.com/en-us/library/ms178473.aspx