C# 如何为WinForms构建高效的KPI列表
我需要构建一个显示KPI指标的Windows控件。类似于下图所示的内容 还有以下要求:C# 如何为WinForms构建高效的KPI列表,c#,.net,winforms,C#,.net,Winforms,我需要构建一个显示KPI指标的Windows控件。类似于下图所示的内容 还有以下要求: 列表需要每隔15秒从后台线程刷新一次 它需要处理100多个指标 我最初的想法是将FlowLayoutPanel与标签和picturebox(每行)结合使用。我设法创建了完全相同的东西,但随着列表的增长和刷新,UI变得无响应,内存占用也在增加 我在GridView和一些第三方组件上尝试了同样的方法,但每次结果类似时,UI最终都会完全冻结,因为它无法处理这么多的项目 那么,您将如何处理这个问题,您将如何创建这个
那么,您将如何处理这个问题,您将如何创建这个控件,您将选择哪些对象来构建UI,以及如何刷新它。(如果有一个看起来不错的第三方控件,它可能也适合我)。这样的布局不应该导致内存占用增加或速度减慢 您的描述听起来更像是控件中的资源泄漏(而不是处理图形对象)。确保您知道,
IDisposable
界面意味着需要对笔刷、图形和图像对象使用using(){}
简短的示例:
using (Graphics g = Graphics.FromImage(picture))
using (Brush fill = new SolidBrush(Color.Yellow))
{
g.FillRectangle(fill, x0, y0, x1, y1);
}
这样的布局不应导致内存占用增加或速度减慢 您的描述听起来更像是控件中的资源泄漏(而不是处理图形对象)。确保您知道,
IDisposable
界面意味着需要对笔刷、图形和图像对象使用using(){}
简短的示例:
using (Graphics g = Graphics.FromImage(picture))
using (Brush fill = new SolidBrush(Color.Yellow))
{
g.FillRectangle(fill, x0, y0, x1, y1);
}
好的,我改变了我的方法,并没有向面板和其他东西添加控件,而是按照您的建议直接绘制它们。工作发现:)+25为你。好的,我改变了我的方法,并没有向面板和其他东西添加控件,而是按照您的建议直接绘制它们。工作发现:)+25为你。Tnx。