为什么在global.asax中写入错误日志时要用lock
看到别人写的代码中,是在global.asax中的Application_Error事件中写记录错误日志的代码的,看到用了lock,有点疑惑,asp.net本身是线程的,那么为什么在global.asax中记录错误时要用lock呢?到网上找的资料说当发生错误时,就会触发Application_Error事件,那么在项目实际的运行过程中,会有多个用户访问单个页面,如果该页面中的代码出错,那么都会触发Application_Error,这个时候为了处理多线程,就要用lock了,
不过还是有些不明白,
1. 从发生错误,到执行Application_Error事件,具体过程是怎样的? 中间发生了什么,作为程序员有没有必要了解?
2. 实际运行时global.asax是会实例化吗?还是说是静态的,只有一个,与具体产生了多少请求无关?
3. 实际运行过程中Httpapplication对象不是会有多个吗?那global.asax继承的是哪一个?