【问题标题】:Advantages and Disadvantages when using DoubleBuffer on control在控件上使用 DoubleBuffer 时的优缺点
【发布时间】:2011-06-11 05:04:43
【问题描述】:

默认情况下,Windows 控件没有 DoubleBuffer。当我使用它时,我可以减少闪烁。为什么它在 Windows 控件中默认不使用。

在控制上使用 DoubleBuffer 时,任何人都可以说出优点和缺点。

谢谢。

【问题讨论】:

  • 双缓冲使用更多资源,并不总是需要。
  • 它使绘画变慢。在您之后绘制的任何控件都将保持未绘制状态的时间更长。显示一个白色或黑色的矩形,直到它出现。这也被视为闪烁。

标签: c# .net


【解决方案1】:

双缓冲技术用于我们要绘制的绘图有很多细节,即使使用速度很快的计算机也很耗时。在这种技术中,不是在屏幕上绘制,而是先绘制成图像,然后再绘制。图像绘制到窗口中。

WinForms 的目的是首先创建带有 UI 元素(ComboBox、TextBox 等)的表单,所以这就是它默认不使用双缓冲的原因。

双缓冲用于图形开发。

所以...双缓冲使用更多内存但工作速度更快,并且没有必要使用它,当没有很多图纸时

希望这会有所帮助!

【讨论】:

    【解决方案2】:

    双缓冲是一种使用的技术 进行绘图密集型应用程序 通过减少更快,看起来更平滑 闪烁。基本思想是采取 用于绘制你的绘图操作 应用程序并将它们应用于 离屏画布。一旦所有 绘图操作已经完成,这 然后将屏幕外画布“推送” forward' 到表面 - 或绘制为 单个图像到控件上。这 给用户一个外观 更快的应用程序。

    DoubleBuffer 非常占用内存,如果您的系统在这种情况下内存较少,您可能会遇到内存紧缩问题。

    关于双重的最后考虑 这里描述的缓冲想法是 这既不是完全优化的,也不是 没有它的缺点。尽管 双缓冲是一个很好的方法 减少 Windows 的闪烁 形式绘画,是记忆 密集的。本质上,使用两次 有效记忆: 应用程序的屏幕图像以及 离屏图像。还, 动态创建 Bitmap 对象 对于每一次绘画活动都非常 像使用一样昂贵 Graphics.DrawImage 推送 屏幕外图像到表面 形式。 DoubleBuffer 控件样式 执行所有这些优化 通常是最有效的方法 做双缓冲。

    你可以阅读更多关于这个here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-01-28
      • 2020-02-10
      • 1970-01-01
      • 2018-08-15
      • 2013-12-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多