UWP.Попытка асинхронной загрузки изображений и получения System.Exception: синхронный вызов Async, «маршалинг для другого потока» - PullRequest
0 голосов
/ 28 ноября 2018

если интерфейсу нужна картинка, он сохраняет запрос в

ConcurrentDictionary<key, Delegate> 

, а когда картинка находится на диске, прочитайте ее и SavedDelegate?.Invoke(key, byte[]).Но в этом месте есть ошибка:

private async void OnDelegateInvokeAsync(ImageItem item, byte[] body)
{
...
item.Image = new BitmapImage();
...
}

System.Exception: синхронный вызов Async, сообщение 'marshalled для другого потока' (исключение из HRESULT: 0x8001010E (RPC_E_WRONG_THREAD)) '

Как лучше всего решить эту проблему?

1 Ответ

0 голосов
/ 28 ноября 2018

Вы должны изменить изображение в потоке пользовательского интерфейса:

Dispatcher.Invoke( ()=> { item.Image = new BitmapImage(); ... } );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...