为什么Environment.Exit导致LINQPad终止

Ofi*_*ris 4 c# linqpad

我调试包含程序Environment.Exit(0);LINQPad.

当这条线Environment.Exit(0);击中时,LINQPad退出.

  1. 为什么会这样?(在Visual Studio,显然只是过程终止).
  2. 有没有办法在不更改原始来源的情况下阻止此行为?

简单的例子:

void Main()
{
    Environment.Exit(0);
}
Run Code Online (Sandbox Code Playgroud)

Joe*_*ari 8

发生这种情况是因为LINQPad在与自身相同的进程中执行查询,通过应用程序域而不是进程隔离查询.

在最新的测试版中发生了变化:LINQPad现在在自己的进程中运行每个查询.这是为即将到来的集成调试器做准备(无法调试您自己的进程).一个令人愉快的副作用是调用Environment.Exit(或抛出StackOverflowException)不再崩溃主机进程.