Visual C#2008 Exp Editionを使用して、プロジェクトをロードすると、プロセスが最大70,000Kのメモリを消費していることに気付きました。数時間後、これは約500,000Kになります。
この時点で、 (内に)UserControl
を含むaは、Visual C#Expressのメモリエラーを示しています。画像ボックスには、で描かれた長方形のビットマップとグリッドが含まれています。PictureBox
Panel
System.Drawing.Graphics
コードは次のとおりです。
このセグメントは、UserControl
が初期化されるときに1回だけ発生します。
Bitmap myBitmap = new Bitmap(a, b);
Graphics g = null;
g = Graphics.FromImage(myBitmap);
g.FillRectangle(Brushes.SteelBlue, 0, 0, c, d);
//Paint Rows & Columns
for (int x = 0; x <= e - 1; x++)
{
for (int y = 0; y <= f - 1; y++)
{
g.DrawRectangle(Pens.LightBlue, g, h, i);
}
}
//Release Resources
g.Dispose();
//Add bitmap with grid to BG
ScorePictureBox.Image = myBitmap;
このコードは非常に頻繁に使用されます。
for (int EventIndex = 0; EventIndex <= MidiNoteDownArray.Length - 1; EventIndex++)
{
//Paint notes to grid
e.Graphics.FillRectangle(Brushes.LightBlue, j, k, l, m);
e.Graphics.DrawRectangle(Pens.Purple, o, p, q, r);
}
e.Dispose();
リソースを適切に解放していませんか?どうすればこれを正しく行うことができますか?