2016-02-17 16 views
3

我有「在其自己的進程中運行每個查詢」選項打開(默認值),但似乎該進程正在重複使用查詢運行(LINQPad.UserQuery.exe保持運行) 。不要在LINQPad中重複使用查詢

有沒有辦法避免這種重複使用?我每次都需要一個新的進程(由於JVM的使用)。

明顯的方法是

Environment.Exit(0); 

,但它會導致不愉快的「查詢意外終止」的消息。

回答

4

嘗試Util.NewProcess = true

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

您也可以嘗試從菜單選項: '查詢' - > '取消所有主題和復位'(也可以通過快捷鍵Shift+Control+F5可用)

5

選項「運行每個在其自己的進程中查詢「指示LINQPad使用進程隔離而不是AppDomain隔離。如果您重新運行相同的查詢,它仍然會重新使用該過程。

您需要的選項是「始終使用新的應用程序域」。將其設置爲true,每執行一次,您將得到一個全新的進程/ AppDomain。或者,按照Guru的建議,在您的查詢中設置Util.NewProcess。這迫使下一次執行使用新的進程/域。

+0

謝謝你,喬!由於我正在爲我們的框架創建一個包含樣本的NuGet包,因此Util.NewProcess似乎是最好的方法,因此用戶不必更改它們的設置。 –