C#表格应用图片盒图纸

C#表格应用图片盒图纸,c#,picturebox,C#,Picturebox,我在表单上有两个图片框,每个图片框都由其他线程委派的事件进行更新 当我只更新其中一个PictureBox时,它正在以高频(54-60Hz)重新绘制。当我更新两个pictureboxes时,正如预期的那样,的刷新速度会减慢,但是不同图片的OnPaint方法的调用速度非常不同(6Hz vs 45-47Hz) 这就是事件发生的方式 class WorkingThread { protected event EventHandler<OutputImageUpdateArgs> N

我在表单上有两个图片框,每个图片框都由其他线程委派的事件进行更新

当我只更新其中一个PictureBox时,它正在以高频(54-60Hz)重新绘制。当我更新两个pictureboxes时,正如预期的那样,的刷新速度会减慢,但是不同图片的OnPaint方法的调用速度非常不同(6Hz vs 45-47Hz)

这就是事件发生的方式

class WorkingThread {

    protected event EventHandler<OutputImageUpdateArgs> NewImageAvailable;
    protected void OnNewImageAvailable(OutputImageUpdateArgs e ) 
    {
         NewImageAvailable.Invoke(this, e );
    }

    ...
    SomeFunction(){
        ...
        OnNewImageAvailable( tmp );
    }
}
类读取{
受保护的事件处理程序NewImageAvailable;
受保护的void OnNewImageAvailable(OutputImageUpdateArgs e)
{
NewImageAvailable.Invoke(this,e);
}
...
SomeFunction(){
...
OnNewImageAvailable(tmp);
}
}
这在UI类/线程中

class UI{
    SomeInitialisationFunction(){
        ...
        pass in the new event handle to the worker threads..
        .. new EventHandler<OutputImageUpdateArgs>( OnNewImageAvailable )
        new EventHandler<OutputImageUpdateArgs>( OnSecondImageAvailable)...
    }

    void OnNewImageAvailable(object sender, OutputImageUpdateArgs e ) {            
        BeginInvoke((Action)(()=> {pictureBox1.Image = e.NewImage;}
        ));
    }

    void OnSecondImageAvailable ( object sender, OutputImageUpdateArgs e ) {            
        BeginInvoke( (Action)(() => {pictureBox2.Image = e.NewImage;}
        ) );
    }
}
类用户界面{
SomeInitialisationFunction(){
...
将新事件句柄传递给工作线程。。
..新的事件处理程序(OneWimageAvailable)
新的事件处理程序(OnSecondImageAvailable)。。。
}
void OnNewImageAvailable(对象发送方,OutputImageUpdateArgs e){
BeginInvoke((操作)(()=>{pictureBox1.Image=e.NewImage;}
));
}
void OnSecondImageAvailable(对象发送方,OutputImageUpdateArgs e){
BeginInvoke((操作)(()=>{pictureBox2.Image=e.NewImage;}
) );
}
}
我想知道两件事:

  • 为什么两个图片框的刷新率如此不同
  • 我是否可以控制何时重画picturebox,以便仅以固定的间隔重画两幅图片?我想我应该能够画出每一个25Hz,因为我可以画出两个的总和,目前大约为50Hz