Для начала, чтобы дать четкую картину.
В верхней части моего класса у меня есть:
Color FocusArea;
Bitmap FocusImage = new Bitmap(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height);
и небольшая функция, чтобы делать скриншоты
private void Screenshot()
{
Bitmap screenshot = new Bitmap(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height);
Graphics g = Graphics.FromImage(screenshot);
g.CopyFromScreen(startscanx, startscany, 0, 0, scanarea, CopyPixelOperation.SourceCopy);
g.Dispose();
FocusImage = screenshot;
//screenshot.Dispose(); // Shit happens when Disposing this one, wtf ?
}
Примерно через минуту (+ - от 3 до 6 снимков экрана в секунду) объем памяти увеличился до 4-10 ГБ и, очевидно, вылетает.
строка, которую он указывает при сбое:
Bitmap screenshot = new Bitmap(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height);
Я пытался избавиться от него после помещения скриншота в FocusImage
, но затем сразу же вылетает при использовании ForusImage
в моем приложении, я думаю, что я делаю что-то ужасное неправильно, я просто не могу понять, чтоно я надеюсь, что вы поможете мне указать, что я делаю неправильно?