我们正在编写一个需要一次运行多个小时的诊断工具,但是当我们在应用程序运行几个小时后尝试从 CheckedListBox 中删除项目时,我们遇到了一个神秘的内存不足异常小时。
我们最初尝试使用 checkedListBox.Items.Clear();
,在谷歌搜索之后,我们尝试了类似以下的方法:
for (int i = checkedListBox.Items.Count - 1; i >= 0; i--)
{
checkedListBox.Items.RemoveAt(i);
}
不幸的是,上述并没有解决问题。我在 MSDN 论坛上发现了这个想法,但今天早上我再也找不到链接了。但是,该论坛确实表示有人分析了他们的应用程序并在 CheckedListBox.Items.Clear()
中发现内存泄漏。
有人知道功能性解决方法吗?
编辑:FingerTheCat 的回答
最佳答案
事实证明,有人在应用程序中留下了一段调试代码,该代码将相当冗长的日志信息附加到 ArrayList
而没有清除它。该代码还将 ArrayList
的副本附加到自身。忘记带出去绝对不是什么好事。
关于c# - CheckedListBox内存泄漏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11158326/