如何加快图片框刷新?

时间:2019-05-14 23:10:35

标签: vb.net picturebox

我有一个在VS2010中运行的VB.net程序。我有一个图片框,其中包含一个“ 4k”监视器上的最大化表单。有一个png被指定为图片框的“背景”图像。

在加载时,我创建一个位图图像列表。我在paint事件中具有逻辑,该逻辑管理要显示哪些位图以及要在何处显示(x / y)。我使用图片框.refresh方法调用paint事件。全部都可以。

但是,我发现.refresh事件大约需要200毫秒(i7处理器和优质的图形卡)。但是花在绘制事件上的时间只有几毫秒。是什么在阻碍.refresh进程,并且有什么办法可以加快速度?

请注意,我在绘画事件中使用了“ e As PaintEventArgs”。

在此处更新...。我已修改绘画事件,使其不包含任何内容:

它只是退出而没有任何更新。但是我仍然有很长的刷新时间。这是我的测试代码:

Sub TestRefreshTime()

 Dim t1 As Int64
 Dim t2 As Int64

 ' measure the refresh time
 QueryPerformanceCounter(t1)

 ' this updates the main large display
 frmbig2.PictureBox1.Refresh()
    ' 
 QueryPerformanceCounter(t2)

 ' note that sysfreq is captured when the program starts using: QueryPerformanceFrequency(sysfreq)
  Debug.Print("Refresh Time: " & (t2 - t1) / sysfreq * 1000)

结束子

这是典型结果(结果以ms为单位):

刷新时间:167.572723801244

刷新时间:180.885409355798

刷新时间:172.064521290003

刷新时间:176.036501891958

刷新时间:173.701552054892

刷新时间:177.931629891584

关于.refresh为何需要这么长时间(即使图片框没有“更改”)的任何想法吗?

0 个答案:

没有答案