Есть BitmapImage и у него есть проблема. Его нельзя просто создать. Можно только начать его инициализацию, после чего он сгенерирует события, типа DownloadCompleted или DownloadFailed. А мне необходимо сделать так, чтобы метод, в котором он инициализируется не возвращал ничего, пока инициализация не прошла. Но как? Не ставить же цикл while.
Например, так:
var bi = new BitmapImage();
bi.BeginInit();
bi.CacheOption = BitmapCacheOption.OnLoad;
bi.UriSource = ...;
bi.EndInit();
// если передаёте в другой поток, ещё нужно
bi.Freeze();
Поскольку загрузка может быть медленной, я бы рекомендовал вынести в фоновый поток через Task.Run:
BitmapImage image = await Task.Run(() =>
{
var bi = new BitmapImage();
// ...
return bi;
});
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости