Это запекается в пару сборок .NET.Вы смотрели на класс WebClient например?Есть обработчики событий * ProcessChanged, такие как DownloadProgressChanged.
Просто добавьте их и оберните их вокруг методов, которые требуют времени, например ProcessImage ().