我打开了“在自己的进程中运行每个查询”选项(默认值),但似乎该进程在查询运行之间被重用(LINQPad.UserQuery.exe 保持运行)。
有没有办法避免这种重用?我每次都需要一个新的进程(由于 JVM 的使用)。
明显的方法是
Environment.Exit(0);
但这会导致令人不快的“查询意外结束”消息。
您可以使用
Util.NewProcess = true
:
Util.NewProcess = true;
Process.GetCurrentProcess().Id.Dump();
您也可以尝试菜单中的选项:“查询”->“取消所有线程并重置”(也可通过快捷方式
Shift+Control+F5
使用)
“在自己的进程中运行每个查询”选项指示 LINQPad 使用进程隔离而不是 AppDomain 隔离。如果您重新运行相同的查询,它仍然会重复使用该进程。
您想要的选项是“始终使用新的应用程序域”。将其设置为 true,每次执行时您都会获得一个新的进程/AppDomain。或者,正如 Guru 建议的那样,在您的查询中设置
Util.NewProcess
。这会强制下一次执行使用新的进程/域。