1

何らかの理由で、 for ループがプログラムを「中断」することを理解できません。

より低い値の場合は正常に機能し、ポイントの区切りはそれより上の 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;
        }          
    }
4

1 に答える 1

0

ビットマップのサイズがゼロに近くなり、ビットマップの構築中に例外がスローされると思います。ビットマップ コンストラクターを try/catch でラップしてみてください

于 2012-05-19T14:37:48.833 に答える