約90%から、91,92,93を実行している数字が表示されません....バーはちょうど終わりに近づいていて、100%になっています
これは、アクションを開始するメニュークリックイベントです。
private void beginConvertionToolStripMenuItem_Click(object sender, EventArgs e)
{
automatic_ = true;
button4.Enabled = true;
beginConvertionToolStripMenuItem.Enabled = false;
backgroundWorker1.RunWorkerAsync();
}
次に、DoWorkイベント:
private void backgroundWorker1_DoWork_1(object sender, DoWorkEventArgs e)
{
if (automatic_ == true)
{
int y;
string[] newDest_files;
System.Drawing.Image NewImages;
string sf;
string[] images;
sf = @"C:\Fraps\Screenshots\";
images = Directory.GetFiles(sf, "*.bmp");
for (int x = 0; x < images.Length; x++)
{
int procents = ((x + 1) * 100) / images.Length;
backgroundWorker1.ReportProgress(procents, images[x]);
if (cancel_ == true)
{
e.Cancel = true;
break;
}
NewImages = System.Drawing.Image.FromFile(images[x]);
batch_Resize(NewImages);
if (NewImages != null)
NewImages.Dispose();
}
}
e.Result = "All files converted successfully";
}
batch_Resize関数コード:
private void batch_Resize(Image sourceImage)
{
Bitmap newImage = new Bitmap(512, 512);
using (Graphics gr = Graphics.FromImage(newImage))
{
gr.SmoothingMode = SmoothingMode.AntiAlias;
gr.InterpolationMode = InterpolationMode.HighQualityBicubic;
gr.PixelOffsetMode = PixelOffsetMode.HighQuality;
gr.DrawImage(sourceImage, new Rectangle(0, 0, newImage.Width, newImage.Height));
i = i + 1;
newImage.Save(@"d:\NewImages\" + i.ToString("D6") + ".jpg", System.Drawing.Imaging.ImageFormat.Jpeg);
}
if (newImage != null)
newImage.Dispose();
}
そして、進行状況が変更されたイベント:
private void backgroundWorker1_ProgressChanged(object sender, ProgressChangedEventArgs e)
{
progressBar1.Value = e.ProgressPercentage;
listBox1.Items.Add( "Converting File: " + e.UserState.ToString());
textBox1.Text = e.ProgressPercentage.ToString();
label4.Text = e.ProgressPercentage.ToString() + "%";
}
そして完了したイベント:
private void backgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
if (e.Error != null)
{
MessageBox.Show(e.Error.Message);
}
else if (e.Cancelled)
{
listBox1.Items.Add("Convertion Have been canceled");
button4.Enabled = false;
}
if (cancel_ == true)
{
}
else
{
button4.Enabled = false;
}
}
90%からバーの進行は緑色を継続しているように見えますが、最終的には100%になり、90から100になりません。