2013-08-30 36 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

相关问题