XNA ゲーム プロジェクトを使用して、3D シーンのフレームを作成しています。ただし、MemoryStream の使用中にメモリ リークが発生しました。以下のコードは、Draw 関数の一部として呼び出されます。
byte[] FrameSave()
{
int w = GraphicsDevice.PresentationParameters.BackBufferWidth;
int h = GraphicsDevice.PresentationParameters.BackBufferHeight;
//pull the picture from the buffer
int[] backBuffer = new int[w * h];
GraphicsDevice.GetBackBufferData(backBuffer);
//copy into a texture
Texture2D texture = new Texture2D(GraphicsDevice, w, h, false, GraphicsDevice.PresentationParameters.BackBufferFormat);
texture.SetData(backBuffer);
MemoryStream ms = new MemoryStream();
texture.SaveAsJpeg(ms, w, h); //MEMORYLEAK
byte[] zframe = ms.ToArray();
ms.Close();
ms.Dispose();
texture.Dispose();
return zframe;
}
どんな助けでも大歓迎です。