Цель моего приложения WinForm - загружать и отображать на короткое время случайно выбранный рисунок из определенной папки. Я делаю это с помощью PictureBox следующим образом (эта строка корректируется генератором случайных чисел для генерации другого имени файла с номером):
pictureBox1.Image = Image.FromFile(@"C:\pics\1.png");
Через некоторое время он загружает другой файл изображения, но, глядя на Диагностический вид, я вижу, что объем памяти процесса увеличивается на прибл. 1 МБ с каждым загруженным изображением. Приблизительно после 100 изображений размер увеличивается на 100 МБ, хотя изображения были заменены. Один из таймеров, управляющих длительностью отображения, включает несколько методов, которые я нашел здесь, чтобы попытаться очистить изображение от ресурсов:
private void displayDuration(object sender, EventArgs e)
{
pictureBox1.Visible = false;
pictureBox1.Image = null;
pictureBox1.Invalidate();
timer2.Enabled = false;
}
но безрезультатно. Память продолжает увеличиваться, но функция Tick работает, так как установка видимости в false работает просто отлично.
Как правильно удалить это изображение из памяти, когда оно мне больше не нужно?
Я пытаюсь не включать ImageList, но если вы думаете, что это может решить эту проблему с памятью, я мог бы добавить ее в.