由于未删除对象导致内存溢出

时间:2020-03-01 13:45:47

标签: c# dictionary static out-of-memory

我在C#中使用静态方法来解决数字问题。我在程序运行期间多次执行此操作。一段时间后,由于内存溢出,程序崩溃了。我认为,每次我调用static方法时,主内存中都会留下一些东西。我认为这是Dictionary对象,我这样使用:

public static Solution solve(Problem p)
{
  Dictionary<String, List<int>> tours = new Dictionary<string, List<int>>();
  /*do stuff*/
  List<int>[] toursarray = new List<int>[tours.Count];
  int counter = 0;
  foreach (KeyValuePair<String, List<int>> kvp in tours)
  {
    toursarray[counter] = kvp.Value;
    counter++;
  }
  tours.Clear();
  tours = null;
  /*do stuff*/
  for (int t = 0; t < toursarray.Length; t++)
    toursarray[t] = null;
}

是否有任何调试工具可用来验证内存中是否还有List<int>个对象?我正在使用Visual Studio社区。另外,如何避免内存中的“隐藏对象”?

0 个答案:

没有答案