カメラからのライブ画像を表示する C# アプリケーションに取り組んでいます。次のコード スニペットで直面している問題は、この関数をスレッドで連続して実行すると、Marshal.Copy で AccessViolationException が発生することです。しかし、これは一度実行すると正常に実行されます (単一の静的イメージを取得します)。メモリ破損の問題に関係していると思います。この問題に対処する方法についてのアイデア/提案はありますか?
private Image ByteArrayToImage(byte[] myByteArray)
{
if (myByteArray != null)
{
MemoryStream ms = new MemoryStream(myByteArray);
int Height = 504;
int Width = 664;
Bitmap bmp = new Bitmap(Width, Height, PixelFormat.Format24bppRgb);
BitmapData bmpData = bmp.LockBits(new Rectangle(0, 0, bmp.Width, bmp.Height), ImageLockMode.WriteOnly, bmp.PixelFormat);
Marshal.Copy(myByteArray, 0, bmpData.Scan0, myByteArray.Length);
bmp.UnlockBits(bmpData);
return bmp;
}
return null;
}