первый постер, долгое время читатель, так что будьте полегче со мной :)
Я пишу приложение, которое читает в кучу папок и позволяет загрузить изображение для каждой папки. Существует элемент управления WebBrowser, в котором можно перейти к определенному изображению и нажать кнопку «использовать это изображение для выбранной папки».
Каждая «папка» представлена как объект со своим собственным методом загрузки, который использует WebClient внутри потока BackgroundWorker.
Когда я устанавливаю URL-адрес изображения для объекта, он запускает фоновый работник этого объекта и запускает этот код
using (WebClient client = new WebClient())
{
client.Proxy = null;
Stream stream = client.OpenRead(BackdropUrl);
Bitmap bitmap = new Bitmap(stream);
stream.Flush();
stream.Close();
e.Result = bitmap;
}
Я также использую веб-клиент в главном потоке своих приложений, чтобы выполнить простой html-анализ.
Теперь к проблеме. Когда я начинаю использовать приложение, все хорошо, файлы загружаются по мере того, как я просматриваю список, но через некоторое время кажется, что веб-клиенты случайно перестают отвечать на запросы. Я все еще могу просматривать элемент управления веб-браузера, но весь код выполнения веб-клиента, кажется, не завершен, он просто висит на одной из этих двух строк:
Stream stream = client.OpenRead(BackdropUrl);
Bitmap bitmap = new Bitmap(stream);
Я знаю, что это все еще довольно расплывчато, но я пытался объяснить это как мог. Может быть, у кого-нибудь есть более надежный способ загрузки изображения прямо в растровый объект? т.е. не сохранять в файл, а затем снова открывать его?
Любая помощь будет принята с благодарностью.