c# - CheckedListBox内存泄漏

标签 c# winforms memory-leaks

我们正在编写一个需要一次运行多个小时的诊断工具,但是当我们在应用程序运行几个小时后尝试从 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/

相关文章:

c# - Bounds.Intersect for WPF

c# - 如何从 WebAPI 中的 HttpResponse 对象获取错误消息?

c# - 为什么内部异常到达 ThreadException 处理程序而不是实际抛出的异常?

c++ - 我的代码中是否存在内存泄漏?

java - 循环文件的 MD5 哈希会导致内存泄漏

C# 构建十六进制表示法字符串

c# - 将 JSON.NET 与 ExpandableObjectConverter 结合使用时出现问题

c# - 底层表单消失但仅当对话框显示时

c# - 将大量文本写入文本框

c++ - 在 Windows 上使用 Google Test 时内存泄漏