[問題] backgroundworker
想請教各位一個問題
我目前有一份處理影像的程式
目的是要做出一個小動畫
就是有兩張圖,在400 * 300的範圍要呈現出來
一開始是A圖,B圖會由左至右把A圖推出去,而且每推一次必須存成一張圖片
(A、B圖皆為400 * 300)
共150次,所以要存成150張圖檔
因為影像處理時間較久,於是丟給backgroundworker處理
以下是我的程式碼:
Bitmap Sample = new Bitmap(400, 300);
for (int frame = 0; frame < 150; frame++)
{
switch (frame % 3)
{
case 0:
shift += 2;
break;
case 1:
case 2:
shift += 3;
break;
}
for (int i = 0; i < shift; i++)
{
for (int j = 0; j < 300; j++)
{
Sample.SetPixel(i, j, Sanbmp.GetPixel(400 - shift + i, j));
}
}
for (int i = 0; i < 400 - shift; i++)
{
for (int j = 0; j < 300; j++)
{
Sample.SetPixel(shift + i, j, Vanbmp.GetPixel(i, j));
}
}
pictureBox4.Image = Sample;
pictureBox4.Image.Save(frame.ToString() + ".bmp");
progressBar1.Increment(1);
Thread.Sleep(50);
}
那我的問題在於,我沒有做存檔的動作時,程式是正常的跑完
但是一加了存檔那行之後,便一直跟我說「某些地方正在使用物件」的Error
我在想是不是Thread速度太快,搶了sample這塊Bitmap
於是我加了Thread.Sleep降緩一下速度,不過結果也是一樣
我所使用的電腦為Duo core,會有影響嗎?
還請各位指教一下,謝謝
--
Ultimate Treein
ˍˍ
▕慕京▏
▕子印▏
 ̄ ̄
http://septemhill.blogspot.com
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 122.118.10.191
→
03/14 23:40, , 1F
03/14 23:40, 1F
→
03/15 00:41, , 2F
03/15 00:41, 2F
→
03/15 00:45, , 3F
03/15 00:45, 3F
→
03/15 06:33, , 4F
03/15 06:33, 4F
→
03/15 06:33, , 5F
03/15 06:33, 5F
→
03/15 10:58, , 6F
03/15 10:58, 6F
→
03/15 13:29, , 7F
03/15 13:29, 7F
推
03/15 13:50, , 8F
03/15 13:50, 8F
→
03/15 13:51, , 9F
03/15 13:51, 9F
→
03/15 18:56, , 10F
03/15 18:56, 10F
→
03/15 18:56, , 11F
03/15 18:56, 11F
→
03/15 18:56, , 12F
03/15 18:56, 12F
→
03/15 18:57, , 13F
03/15 18:57, 13F
→
03/15 18:57, , 14F
03/15 18:57, 14F