【发布时间】:2013-03-07 15:04:00
【问题描述】:
我有一个“图片”列表,其中包含大约 20 张照片,每张大约 1MB。我想通过单击下一步按钮滚动列表中的图像。但是在大约 8 张图片之后,我就失去了记忆。
private void button4_Click(object sender, EventArgs e) //next
{
index++;
if (index >= images.Count) index = 0;
CurrImage = images[index];
Bitmap b = new Bitmap((Bitmap)CurrImage.Clone()); //breakpoint occurs her
pictureBox1.Image = b;
NewThread = new Thread(new ThreadStart(ChooseColors2));
}
ChooseColors2 线程将使用“CurrImage”,因此为了避免竞争条件,我通过创建一个新的位图来避免这种情况,如上所示
请注意,如果我使用 pictureBox1.Image = CurrImage;如果不创建新的位图,我不会收到此错误,但线程会出现竞争条件异常。
【问题讨论】: