我在while循环中运行一些代码以确保程序始终运行。如果程序没有运行启动它,如果程序是不是有它的副本从备份,然后启动它,没有什么花哨:while循环中的内存泄漏
while (true)
{
Process backup = new Process();
ProcessStartInfo check = new ProcessStartInfo(file);
if (Process.GetProcessesByName(file).Length == 0)
{
if(File.Exists(file))
{
backup.StartInfo = check;
backup.Start();
}
else if (!File.Exists(file))
{
File.Copy(backupFile, file);
Thread.Sleep(250);
backup.StartInfo = check;
backup.Start();
}
}
backup.Close();
Thread.Sleep(2000);
}
问题是每个周期后的内存占用上升大约100KB,这并不是我所知道的,但如果这个运行了一个小时左右,它会导致很大的问题。
我试过暂停它,并使用.Close()
的过程,但没有喜悦。任何想法都非常感谢。
是什么让你觉得有内存泄漏?你是否等待GC收集以查看是否收集了一些数据(并因此确实存在内存泄漏)? – ken2k 2012-01-28 11:41:43
你实际上是在第5行使用字符串字面还是是一个错字? – Nuffin 2012-01-28 11:42:34
对不起,错字,固定。 – 2012-01-28 11:43:04