减少在表单上呈现多个图片框时的延迟

本文关键字:延迟 表单 | 更新日期: 2023-09-27 18:17:05

我正在用c#开发一个简单的关卡编辑器,使用大小为16x16的贴图。默认的关卡大小是256x256,每一行需要16个贴图(16行)。这意味着对于默认的关卡大小,总共需要256个贴图。这些磁贴通过图片框控件呈现到面板上。正如您可能猜到的那样,在中等规格的笔记本电脑上运行了大约100多个磁贴后,应用程序甚至在移动鼠标时也会遇到延迟。

该应用程序是一个WinForms应用程序。

我想知道如何解决这个问题。

My PC Specs:

  • Windows 7 64bit
  • 2.5-3GHz Intel i5 CPU
  • 英特尔HD 4000 GPU (64Mb专用显存-可能是问题)
  • 6GB DDR3 1600MHz内存(RAM)
  • 在750GB硬盘上运行

我已经试过了:

  • 为面板和呈现图片框的表单启用双重缓冲。
  • 创建一个自定义控件,可以简单地绘制图像。

这两种方法都导致了同样的失败和视觉滞后。

我读过很多其他的答案,上面的解决方案似乎是唯一的,尽管它们对我没有任何帮助。

减少在表单上呈现多个图片框时的延迟

不要试图将每个tile显示为它自己的控件,而是将您的对象合并到一个控件中。

堆栈中已经有一个很好的答案描述了它是如何完成的