我正在Environment.Exit(0);
调试包含LINQPad
的程序。
当此行Environment.Exit(0);
点击时,LINQPad
会退出。
Visual Studio
中,显然只是进程终止)。 简单示例:
void Main()
{
Environment.Exit(0);
}
答案 0 :(得分:8)
这是因为LINQPad在与自身相同的进程中执行查询,通过应用程序域隔离查询而不是处理。
这已经改变in the latest beta:LINQPad现在在自己的进程中运行每个查询。这是为即将到来的集成调试器做准备(无法调试您自己的进程)。一个令人愉快的副作用是调用Environment.Exit(或抛出StackOverflowException)不再崩溃主机进程。
答案 1 :(得分:4)
LINQPad在其自己的进程的异步线程中执行代码(不锁定UI),因此当您运行诸如Environment.Exit之类的指令时,托管进程(因此Linqpad本身)也会受到影响。
您可以通过运行一个进行一些计算的长程序来轻松检查:任务管理器中没有新进程,并且linqpad进程CPU使用率根据计算而提高。
例如,您可以在与应用程序域相关的高级选项中调整一些内容,但AFAIK无法避免此行为,因为Linqpad完全依赖于这种方式来执行代码。