Я очень сомневаюсь, что этот код является причиной проблемы, по крайней мере, для первого вызова метода (но читайте дальше ниже).
Технически, вы можете создать битовую карту без сохранения в буфере памяти.во-первых, или если вам не нужно отображать изображение, вы можете сохранить необработанные данные, даже не создавая растровое изображение, но это не поможет с точки зрения повышения производительности за несколько секунд.Вы проверили, сколько времени требуется для загрузки изображения с этого URL с помощью браузера, wget, curl или любого другого инструмента, потому что я подозреваю, что что-то происходит с источником кодирования.ваши ресурсы;закройте поток правильно.Это может вызвать проблему, если вы будете регулярно вызывать этот метод, потому что .NET будет открывать только несколько соединений с одним и тем же хостом в любой точке.
// Make sure the stream gets closed once we're done with it
using (Stream stream = resp.GetResponseStream())
{
// A larger buffer size would be benefitial, but it's not going
// to make a significant difference.
while ((read = stream.Read(buffer, total, 1000)) != 0)
{
total += read;
}
}