저는 C#에서 응용 프로그램을 개발 중이며 Aforge
카메라로 몇 가지 작업을 수행하는 라이브러리를 개발했습니다.AForge 카메라 메모리 누수
camera.NewFrame += NewFrame;
private void NewFrame(object sender, NewFrameEventArgs args)
{
Bitmap newFrame = new Bitmap(args.Frame);
args.Frame.Dispose();
PictureBox.FromBitmapImage(newFrame);
newFrame.Dispose();
newFrame = null;
}
내가 여기서 무엇을, 나는 모든 프레임을 얻고로 페인트 : 포인트 중 하나는 단순히 웹 캠 앞에 무엇의 이미지를 캡처하고 이렇게 특정 PictureBox
에 그것을 보여주는 것입니다 PictureBox
.
내 의심의 여지가 있습니다 : 일부 컴퓨터에서
는 회화의이 방법은 정말 높은 메모리 누수를 생성합니다. 카메라 구성은 640x480이고 높으면 메모리 누수가 증가합니다.
컴퓨터 구성 : NO 메모리 누수 :
인텔 I5 :이 500MB
인텔 I7에 메모리 누수.
Double coeur (강력하지는 않음) :별로 메모리 누출이 없습니다.
편집 : 일부 컴퓨터 등하지의 메모리 누수가 왜
public static void FromBitmapImage(this Image image, Bitmap bitmap)
{
BitmapImage bitmapImage = new BitmapImage();
using (MemoryStream memoryStream = new MemoryStream())
{
bitmap.Save(memoryStream, ImageFormat.Bmp);
memoryStream.Position = 0;
bitmapImage.BeginInit();
bitmapImage.StreamSource = memoryStream;
bitmapImage.CacheOption = BitmapCacheOption.OnLoad;
bitmapImage.EndInit();
}
image.Source = bitmapImage;
bitmapImage = null;
}
나는 ... 이해하지 못하는 어떤 제안하십시오?
참고 : 메모리 누수는 Visual Studio 2010 릴리스 모드에서만 발생하지만 디버그에서는 발생하지 않습니다.
NOTE2 : 내가
'PictureBox.FromBitmapImage (Bitmap) '란 무엇이며 어떻게 되나요? –