Событие ImageOpened BitmapImage не запускается в фоновом агенте

Как и в заголовке, событие не запускается, когда код выполняется в BackgroundAgent, хотя он работает нормально, когда я выполняю его в своем основном приложении.

Вот мой код:

var background = new BitmapImage(new Uri(uri), UriKind.Absolute)){ CreateOptions = BitmapCreateOptions.None };
background.ImageFailed += (s, e) =>
{
    Debug.WriteLine(e);
    // Nothing happens here so I guess that there's no error in the image loading
};
background.ImageOpened += (s, e) =>
{
    Debug.WriteLine("ImageOpened");
    // This line is never printed no the event is never thrown
};

Все работает в потоке Dispatcher, и я пытаюсь загрузить удаленное изображение (я не могу его кэшировать, потому что это динамическое изображение, созданное страницей php).

Намек?

РЕДАКТИРОВАТЬ:

Вот код, основанный на предложении @ l3arnon:

var backgroundImage = new BitmapImage { CreateOptions = BitmapCreateOptions.None };
backgroundImage.ImageOpened += (s, e) =>
{
                Debug.WriteLine("ImageOpened");
};
backgroundImage.UriSource = new Uri(uri);

все еще безуспешно.


person StepTNT    schedule 29.12.2013    source источник
comment
Где вы регистрируете обработчик событий для события ImageLoaded?   -  person i3arnon    schedule 29.12.2013
comment
На самом деле я говорил о событии ImageOpened, я только что отредактировал заголовок   -  person StepTNT    schedule 29.12.2013
comment
Я пытаюсь поймать событие ImageFailed, но оно никогда не запускается для локальных файлов. Я пробовал это с текстовым файлом с расширением .gif, пробовал с несуществующим путем. Ничего такого. Может быть, ваш тоже не стреляет.   -  person Jānis    schedule 14.06.2016
comment
Наблюдая ту же проблему с Silverlight в настоящее время, вы что-то достигли с этим? Периодическая проблема с ImageFailed / ImageLoaded не запускается   -  person Duncan Watts    schedule 12.01.2018


Ответы (1)


Я могу только догадываться, что он загружает изображение так быстро, что вы слишком быстро регистрируете обработчик событий. Попробуйте сначала создать экземпляр BitmapImage, а затем установить uri

person i3arnon    schedule 29.12.2013