2013-08-30 38 views
1

我想知道是否應該擔心這種情況下的內存使用情況。我想在c#應用程序中啓動大量的「lnk」快捷鍵。我不知道爲什麼我看到推出的lnk文件VS啓動exe文件之間的內存使用情況的差異:c#啓動lnk快捷方式的內存使用情況

Process proc = new Process(); 

for (int i = 0; i < 20; i++) 
{ 
    proc.StartInfo.FileName = "c:\\somefolder\\shortcut.lnk"; //vs "c:\\somefolder\\someapp.exe" 
    proc.Start(); 
} 

主要的C#程序使用每快捷推出約500千字節。即使在「快捷方式啓動」應用程序關閉此內存似乎永遠不會被釋放。我試過做proc.close()或proc.dispose(),我強制垃圾收集器運行,看看會發生什麼。我沒有做任何改變「快捷方式啓動」的內存使用。

相比之下,當我直接啓動可執行文件時,主程序似乎沒有爲每個啓動的進程使用更多的內存。

回答

0

相反,當我直接啓動可執行文件,主程序不會出現每個進程使用更多的內存推出

快捷鍵是什麼本身。它只是一個指向主可執行文件的指針。所以假設/聲稱從快捷方式開始運行需要更多的內存,這是不對的。

主c#程序使用大約500千字節每發射的快捷方式。即使在「快捷方式啓動」應用程序關閉此內存似乎永遠不會被釋放。

,如果你認爲這個過程是不釋放內存,您可以使用

using (Process proc = new Process()) 
{ 
    proc.StartInfo.FileName = "c:\\somefolder\\shortcut.lnk"; 
    proc.Start(); 
} 
+0

我已經嘗試了使用像這樣的包裝也使用它,但它沒有什麼區別。快速啓動的應用程序顯然被區別對待。 – zefram12

+0

要清楚:啓動的應用程序沒有使用更多內存。啓動快捷方式的應用程序使用更多內存。 – zefram12

相關問題