我有兴趣了解 C# 控制台应用程序是否存在任何类型的生命周期,类似于 ASP.Net 生命周期。
我特别感兴趣
- 大会决议 - 什么时候发生
- 编译 - 该方法如何
static Main
影响依赖对象的编译
我有兴趣了解 C# 控制台应用程序是否存在任何类型的生命周期,类似于 ASP.Net 生命周期。
我特别感兴趣
static Main
影响依赖对象的编译通常,每个方法在第一次执行时都会被 JIT 处理,并根据需要再次进行程序集解析,这通常意味着“在使用我们还不需要的程序集的方法的 JIT 期间”(但也可能意味着:通过反射) .
static Main
与任何其他方法一样工作;您使用的任何内容都Main
将在Main
开始执行之前解决。在某些情况下,您可能希望(帮助调试):
static int Main(string[] args) {
try {
return MainImpl(args);
} catch(Exception ex) {
// .. do something
return -1;
}
}
[MethodImpl(MethodImplOptions.NoInlining)]
static int MainImpl(string[] args) { ... }
如果通常在Main
(但现在在MainImpl
)中的代码导致程序集解析错误,这很有用……因为如果不能首先成功地 JITted ,你就不能catch
在其中做某事。Main
Main
至于生命周期...
Main
)Main
退出时”,但在线程服务器示例中可能更复杂