Image file.Dispose() - не закрывает поток - C#

Узнай цену своей работы

Формулировка задачи:

Всем привет! Подскажите пожалуйста, почему так может быть: скачиваю картинку с сайта, проверяю её разрешение этим кодом:
//51. Узнаю и сравниваю с условием разрешение фотографии:
if (project.Variables["HeightAndWidthForPhoto"].Value != "") {
Image file = Image.FromFile(papkaDlyaZagr + @"\" + numberPhoto + formatPhoto); // Путь к картинке
project.SendInfoToLog(file.Width.ToString());
project.SendInfoToLog(file.Height.ToString());
if (Convert.ToInt32(file.Width) < W || Convert.ToInt32(file.Height) < H) {
 
//52. Удаляю фотографию, раз размер меньше
project.SendInfoToLog(String.Format("Поток {0}: Фотография оказалась меньшего разрешения: {1}. Нужно: {2}. Удаляю её.", intNumPotok, file.Width.ToString() + "x" + file.Height.ToString(), W.ToString() + "x" + H.ToString()), true);
project.SendInfoToLog(papkaDlyaZagr + @"\" + numberPhoto.ToString() + formatPhoto);
step52: try { file.Dispose(); File.Delete(papkaDlyaZagr + @"\" + numberPhoto.ToString() + formatPhoto); continue; } catch {
    if (kolPopitokDelPhoto < 5) {Thread.Sleep(2000); kolPopitokDelPhoto++; goto step52;}
    project.SendErrorToLog(String.Format("Ошибка на шаге 52."), true); return null;}
    }
}
И вот там, где написано file.Dispose(); закрытие фотографии не происходит. и выдаёт ошибку. Причём эта проблема вчера появилась, до вчерашнего дня нормально работало. Но в коде я ничего не менял. Перезагрузил винду (ну мало ли) и всё равно не помогло. Может быть я что-то не так в коде написал?

Решение задачи: «Image file.Dispose() - не закрывает поток»

textual
Листинг программы
Image file;
using (var fstream = File.OpenRead(papkaDlyaZagr + @"\" + numberPhoto + formatPhoto))
{
    file = Image.FromStream(fstream);
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 4.75 из 5
Похожие ответы