我在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社区。另外,如何避免内存中的“隐藏对象”?