C# 给PictureBox赋值图像时,报“参数无效”异常的解决方法!

发布时间 2023-07-11 09:05:10作者: 新凉别处暑
  • 原因:Winform的窗体中显示9个Picturebox控件,由于更新速度较快偶尔会"参数无效"的异常。异常图像如下:

  • 通过测试知:1,注释PictureBox.Image.Dispose(),不会报异常;2,注释PictureBox.Image=null,还是会报异常!
  • 选择释放的原因:由于刷新图像较快内存占用较大,所以选择主动用Dispose(),=null方法使GC回收内存垃圾。
  • 解决方法:通过Debug知,公共的bitmap和PictureBox.Image指向的内存地址一样,当用tempBmp接收传进来的bmp图像时,此时PictureboxImage
    的对象已是最先图像。当PictureBox.Image释放内存后,公共变量tempBmp内存业已释放,再次赋值时会报错。把tempBmp=bmp这句放在释放内存后,解决问题。