2011-10-05 8 views
6

que tiene una aplicación ASP.NET en la que estoy escribiendo este código en caso Application_OnStart:Seguridad de los hilos sobre la solicitud de inicio

public virtual void OnStart(HttpApplication httpApplication) 
{ 
    MyClass.PopulateIndices(); 
} 

Ahora, sé que App_Onstart se dispara sólo una vez, por lo que mi pregunta es: ¿ tengo que añadir hilo de seguridad en este código, como:

lock(some object) 
{ 
    MyClass.PopulateIndices(); 
} 

¿Es esta lock() realmente se necesita? ¿Pueden los hilos múltiples disparar la aplicación OnStart simultáneamente?

Respuesta

9

Se va a llamar una sola vez. Seguro. No necesitas ningún candado allí.

De MSDN:

El método Application_Start se llama sólo una vez durante el ciclo de vida de una aplicación.

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

+0

¿Qué pasa si estoy usando misma carpeta de aplicación web para unos pocos, todavía llama una vez? ¿Cómo puedo reproducir esto? –

1

Probé esto con un poco de registro y Application_Start se ejecuta solo una vez (mientras que, por ejemplo, Session_Start se ejecuta en cada inicio de sesión de usuario).

no necesitará el candado.

Cuestiones relacionadas