For-Loop在达到上限之前结束

时间:2012-05-19 12:49:30

标签: c# .net

出于某种原因,我无法理解我的循环“打破”程序。

对于较低的值,它工作正常,点的中断似乎是45秒(600位图)以上的任何东西,并且循环只是存在而且函数甚至没有完成。

这是循环:

 public void GenBitmaps()
    {
        timespan = new TimeSpan(0, 0, 0, 40);
        int BitmapCount = (int)((timespan.Minutes * 60 + timespan.Seconds) * 1000 / ((double)timer1.Interval));
        bitmaps = new Bitmap[BitmapCount];

        double size = StartSize.Height;

        for (int i = 0; i < BitmapCount; i++)
        {
            this.Text = i.ToString() + " " + BitmapCount.ToString();
            bitmap = new Bitmap(StartSize.Width, (int)size);

            using (Graphics gfx = Graphics.FromImage(bitmap))
            {
                using (SolidBrush brush = new SolidBrush(Color.Red))
                {
                    gfx.FillRectangle(brush, 0, 0, bitmap.Width, bitmap.Height);
                }
            }
            bitmaps[i] = bitmap;
            size -= StartSize.Height / (float)BitmapCount;
        }          
    }

1 个答案:

答案 0 :(得分:0)

我认为您的位图大小接近于零,并且在位图构造期间会抛出一些异常。尝试在try / catch

中包装位图构造函数