不要在 LINQPad 中重用查询过程

Do NOT reuse query process in LINQPad

我打开了 "Run each query in its own process" 选项(默认值),但该进程似乎在查询运行之间重复使用(LINQPad.UserQuery.exe 保持 运行)。

有没有办法避免这种重用?我每次都需要一个新的进程(由于 JVM 的使用)。

显而易见的方法是

Environment.Exit(0);

但这会导致不愉快的 "Query ended unexpectedly" 消息。

尝试 Util.NewProcess = true:

Util.NewProcess = true;
Process.GetCurrentProcess().Id.Dump();

您也可以尝试菜单中的选项:'Query' -> 'Cancel All Threads and Reset'(也可以通过快捷方式 Shift+Control+F5

选项"Run each query in its own process" 指示LINQPad 使用进程隔离而不是AppDomain 隔离。如果您重新运行 相同的查询,它仍将重新使用该过程。

您想要的选项是"Always use fresh application domains"。将其设置为 true,每次执行都会得到一个新的 process/AppDomain。或者,正如大师所建议的那样,在您的查询中设置 Util.NewProcess 。这会强制下一次执行使用新的 process/domain.