繁体   English   中英

在C#Winform中冗长的onPaint事件周围的正确方法?

[英]Proper way around lengthy onPaint event in C# winforms?

我目前正在开发C#winforms图形应用程序。 为了弄清楚这一点,我的图形控件的Paint事件处理程序必须绘制成千上万的点,这可能需要几秒钟的时间。 在此期间,应用程序被冻结。 我的目标是:如果用户在绘制较旧的数据时更改了要绘制的数据,则它将在绘制较旧的数据的过程中停止并开始绘制新的数据。 这样做的正确方法是什么?或者我完全不知道这是什么? 我试图使我的问题尽可能清楚。

您的问题的答案在于双重缓冲。 您无需了解有关双缓冲的所有详细信息即可使用它。 只需将属性设置为true(如下所示)即可在控件中启用它。

 MyGraphPanelControl.DoubleBuffered = true;

明显的缺点是内存使用率,但它将大大提高面板上绘制内容的“速度”。 就像计算机科学中的许多事情一样,您会以内存换取速度,反之亦然。

此外,从Microsoft阅读内容将使您更深入地了解如何使用Double Buffering。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM