C# Проблема с памятью при использовании растровых изображений для создания средства записи экрана - PullRequest
1 голос
/ 07 августа 2020

Я разрабатываю средство записи экрана, но у меня проблемы с растровыми изображениями и их удалением. Проблема в том, что барана едят быстро. Затем я начал задаваться вопросом, не было ли плохой практикой создавать средство записи экрана с использованием растровых изображений?

Я попробовал Bitmap.Dispose (), но затем получил System.ArgumentException: «Параметр недействителен». ошибка.

Итак, у меня есть 2 вопроса:

  1. Это плохая практика создания средства записи экрана с использованием Bitmap?
  2. Есть идеи, как решить проблему с памятью?

Ниже приведен код, после использования videoFileWriter я попытался удалить изображение, так как оно было бесполезным, но оно все равно вылетает.

Спасибо за ваше время.

using (Bitmap bmpImage = new Bitmap(System.Windows.Forms.Screen.PrimaryScreen.Bounds.Width, System.Windows.Forms.Screen.PrimaryScreen.Bounds.Height))
        {
            graphics = Graphics.FromImage(bmpImage);
            graphics.CopyFromScreen(0, 0, 0, 0, bmpImage.Size);
            pictureBox1.Image = bmpImage;

            lblTime.Text = stopwatch.Elapsed.ToString();
            videoFileWriter.WriteVideoFrame(bmpImage);
        }
...