作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 C# .NET 应用程序的运行时向 Windows 窗体添加控件。这些控件中的每一个都与特定信号交互并使用来自该信号的一些数据——信号名称、描述、来源、单位、值等。
这些控件上有一个复选框。当这些信号之一的复选框的 Visible 属性变为真时,我的应用程序的 Committed 内存就会跃过 800MB。其他数百个信号都没有问题。
我使用 DebugDiag 工具了解到 comctl32.dll 正在分配 805.45 MBytes。特别是:
接下来的故障排除步骤应该是什么?哪些工具可以提供帮助?
更新:我将问题跟踪到父控件上的 System.Windows.Forms.TrackBar。轨迹栏最高超过两亿。当我将最大值减少到 100,000,000 时,它使用了大约一半的内存。将最大值设置为 1,000,000 左右会使用更合理的内存量。
最佳答案
我将问题跟踪到父控件上的 System.Windows.Forms.TrackBar。轨迹栏最高超过两亿。当我将最大值减少到 100,000,000 时,它使用了大约一半的内存。将最大值设置为 1,000,000 左右会使用更合理的内存量。
checkbox.Visible 让我失望了。看起来应用程序正在为复选框创建控件和内存。Visible 变为 true,但复选框本身与问题无关。
关于c# - 当复选框控件的 Visible 变为 true 时,comctl32.dll 使用过多的内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15206654/
我是一名优秀的程序员,十分优秀!