1

我试图弄清楚我是否应该担心这种情况下的内存使用情况。我想在 ac# 应用程序中启动很多“lnk”快捷方式。我想知道为什么我看到启动 lnk 文件和启动 exe 文件之间的内存使用差异:

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 KB。即使在“快捷方式启动”应用程序关闭之后,这个内存似乎也永远不会被释放。

我尝试过 proc.close() 或 proc.dispose(),并且我已经强制垃圾收集器运行以查看会发生什么。我没有做任何改变“快捷方式启动”的内存使用。

相反,当我直接启动可执行文件时,主程序似乎并没有为每个启动的进程使用更多内存。

4

1 回答 1

0

相反,当我直接启动可执行文件时,主程序似乎并没有为每个启动的进程使用更多内存

捷径本身什么都不是。它只是一个指向主可执行文件的指针。因此,假设/声称从快捷方式运行占用更多内存是不可能的。

主 c# 程序在每个启动的快捷方式中使用大约 500 KB。即使在“快捷方式启动”应用程序关闭之后,这个内存似乎也永远不会被释放。

如果您认为该进程没有释放内存,则可以在 using 中使用它

using (Process proc = new Process())
{
     proc.StartInfo.FileName = "c:\\somefolder\\shortcut.lnk";
     proc.Start();
}
于 2013-08-30T12:24:41.117 回答