加快Windows窗体元素的呈现

时间:2018-12-27 18:41:52

标签: c# arrays windows winforms optimization

我正在创建包含很多数据的应用程序,应将某些数据添加到FlowLayourPanel。 我将它们全部添加到for中使用,并在每个FOR周期结束时进行了测试。我测试了极限值,例如具有1000个数组成员,它们都应该在屏幕上呈现。 我是多线程的,它的工作速度超快(对它们进行排序,计算最大值,最小值和总和),但是当需要显示它时,它需要2秒钟,甚至可能需要3秒钟,并且由于Windows窗体不允许我,所以我无法对其进行多线程处理。

我的用户不会有1000个数组成员,但是我必须尝试一下,并且它必须能工作这么多。

有什么办法可以工作吗?

它滞后于这一刻,没有这部分代码,它可以立即工作(4毫秒)

PFlow.Controls.Add(Dat[i]);

PFlow是flowlayoutpanel,Dat [i]是数据 数据实际上是一个包含5个变量,一个更多的数组和几个函数的类。

当我快速滚动通过FlowLayoutPanel然后停止时,它会将整个程序冻结2秒钟,就像再次渲染它一样

1 个答案:

答案 0 :(得分:2)

好的,所以我解决了这个问题,现在就解决了。

它是这样的:

List<Control> lis = new List<Control>();
Parallel.For(/* Populate lis */);
PFlow.Controls.AddRange(lis.ToArray());