.NET 3.x Правильное использование Image - C#

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

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

У меня есть файл 123.jpg на диске и я постоянно его меняю: удаляю старый и новый через WebClient загружаю. Так вот, когда я пытаюсь удалить старую фотку для загрузки новой, мне пишет "Ваша фотка используется другим процессом". Подскажите, как можно использовать фото, чтобы оно не было связано с процессом?
backgroundWorker1_DoWork(object sender, System.ComponentModel.DoWorkEventArgs e)
{
    try
    {
        File.Delete("C:\\123.jpg");
    }
    catch (FileNotFoundException) { }
    WebClient wc = new WebClient();
    wc.DownloadFile(url, "C:\\123.jpg");
}
 
private void backgroundWorker1_RunWorkerCompleted(object sender, System.ComponentModel.RunWorkerCompletedEventArgs e){
    panel1.BackgroundImage = Image.FromFile("C:\\123.jpg");
}
P.S. backgroundWorker1 работает несколько раз в течении процесса (в зависимости от действий пользователя), он загружает фото с разных url. После присвоения panel1 значения программа не дает удалить фото для новой загрузки

Решение задачи: «.NET 3.x Правильное использование Image»

textual
Листинг программы
private void backgroundWorker1_RunWorkerCompleted(object sender, System.ComponentModel.RunWorkerCompletedEventArgs e){
    MemoryStream mstream = new MemoryStream(File.ReadAllBytes(@"C:\123.jpg"));
    panel1.BackgroundImage = Image.FromStream(mstream);
}

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


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

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

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