在 PictureBox 图像上使用线程绘图

Posted

技术标签:

【中文标题】在 PictureBox 图像上使用线程绘图【英文标题】:Drawing with threads on a PictureBox Image 【发布时间】:2012-11-15 00:45:09 【问题描述】:

我正在尝试使用线程在 PictureBox 中的图像上绘制多个椭圆,但是当我与表单交互时(比如移动它),当我克隆当前时,GDI 会抛出 InvalidOperationException(当前正在使用的对象)线程中的图像。

我想要实现的是能够在画布上为一些形状设置动画,并让用户在与表单交互(以及放大图像等)时获得流畅的体验。

实现此目的的最佳方法是什么?

【问题讨论】:

【参考方案1】:

保留与后台线程交互的单独图像,然后在有新内容要显示时将其克隆到 UI 线程。克隆应该通过 BeginInvoke 完成

【讨论】:

【参考方案2】:

在与 PictureBox 交互之前,您可能需要调用 BeginInvoke 以进入 GUI 线程。

就这样……

form.BeginInvoke(ManipulatePictureBox);

【讨论】:

以上是关于在 PictureBox 图像上使用线程绘图的主要内容,如果未能解决你的问题,请参考以下文章

c#winform怎么在picturebox中绘制点线面

c# PictureBox 的图像上使用鼠标画矩形框

pictureBox使用总结

如何检索 WinForms PictureBox 的缩放因子?

webgl绘图原理

从单独的线程在表单上绘制图像