C# 应用程序启动时的线程安全
我有一个ASP.NET应用程序,在其中我正在应用程序启动事件中编写以下代码:C# 应用程序启动时的线程安全,c#,asp.net,locking,application-start,C#,Asp.net,Locking,Application Start,我有一个ASP.NET应用程序,在其中我正在应用程序启动事件中编写以下代码: public virtual void OnStart(HttpApplication httpApplication) { MyClass.PopulateIndices(); } 现在,我知道App\u Onstart只启动一次,所以我的问题是:我是否需要在这段代码中添加线程安全性,比如: lock(some object) { MyClass.PopulateIndices(); } 这真的需
public virtual void OnStart(HttpApplication httpApplication)
{
MyClass.PopulateIndices();
}
现在,我知道App\u Onstart
只启动一次,所以我的问题是:我是否需要在这段代码中添加线程安全性,比如:
lock(some object)
{
MyClass.PopulateIndices();
}
这真的需要锁吗?多线程能否同时启动应用程序
OnStart
我通过一些日志记录对此进行了测试,应用程序启动只执行一次(例如,会话启动在每个用户的会话启动时执行)
您不需要锁。如果您使用的是.NET 4.0,我建议您只使用
ServiceAutoStart Providers
:
它只会被调用一次。肯定那里不需要锁 从MSDN: 应用程序启动方法在生命周期内只调用一次 应用程序的周期
来源:如果我在几个网站上使用同一个应用程序的文件夹,它仍然调用过一次会怎么样?我如何复制这个?