私は、pictureBox1 に UI (メイン スレッド) で CurrImage を表示させ、同時に CurrImage をバックグラウンド スレッドで変更する必要があるため、完了するまでに時間がかかります。バックグラウンド スレッドが処理を終了すると、古い CurrImage が pictureBox1 内の新しい CurrImage に置き換えられます。
1) 例外が発生しました。2) バックグラウンド スレッドで CurrImage を変更しているときに、UI スレッドで別の画像変数を試してみましたが、うまくいきました。
両方のスレッドが同じグローバル変数で実行されるようにするにはどうすればよいですか? 前もって感謝します
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);
}