我希望 pictureBox1 在 UI(主线程)中显示 CurrImage,同时在后台线程中修改 CurrImage,这需要一些时间才能完成。当后台线程完成处理后,它应该在pictureBox1 中将旧的CurrImage 替换为这个新的。
1)我得到一个异常 2)我在 UI 线程中尝试了一个不同的图像变量,同时在后台线程中修改 CurrImage 并且效果很好。
如何管理两个线程以在同一个全局变量上运行?提前致谢
private Image CurrImage; int index;
private void button4_Click(object sender, EventArgs e)
{
index++;
if (index >= images.Count) index = 0;
CurrImage = images[index]; if (!bkGrndWker2.IsBusy) bkGrndWker2.RunWorkerAsync();
pictureBox1.Image = CurrImage;
}
private void bkGrndWker2_DoWork(object sender, DoWorkEventArgs e)
{
this.pictureBox1.Image = Iprocessing.Colour_style1((Bitmap)CurrImage);
}