Multithreading UWP。正在尝试异步下载图片并获取系统。异常:同步调用异步,';为不同的线程编组';

Multithreading UWP。正在尝试异步下载图片并获取系统。异常:同步调用异步,';为不同的线程编组';,multithreading,uwp,Multithreading,Uwp,如果接口需要图片,它会将请求保存在 ConcurrentDictionary<key, Delegate> 异常:同步调用Async,'为 “不同线程”消息(来自HRESULT的异常:0x8001010E (RPC_E_错误_线程))' 解决此问题的最佳方法是什么?您应该在UI线程中更改图像: Dispatcher.Invoke( ()=> { item.Image = new BitmapImage(); ... } ); 没有理由对async/await执行此操作。如

如果接口需要图片,它会将请求保存在

ConcurrentDictionary<key, Delegate> 
异常:同步调用Async,'为 “不同线程”消息(来自HRESULT的异常:0x8001010E (RPC_E_错误_线程))'


解决此问题的最佳方法是什么?

您应该在UI线程中更改图像:

Dispatcher.Invoke( ()=> { item.Image = new BitmapImage(); ... } );

没有理由对
async/await
执行此操作。如果OP出现异常,可能是因为
async void
或其他无法将执行返回到UI线程的错误,代码的其余部分在哪里?异步调用在哪里?如何调用
OnDelegateInvokeAsync
<代码>异步无效应仅用于事件处理程序。不返回结果的方法应使用
异步任务
async void
无法等待您在
await
调用中使用
ConfigureAwait(false)
?这意味着执行不会返回到UI线程。发布你的代码
Dispatcher.Invoke( ()=> { item.Image = new BitmapImage(); ... } );