异步调用中的可写位图读取



我想将从 UI (WPF) 生成的可写位图对象传递到异步调用中,但不想更新主线程的可写位图。我只想读取一些属性,例如像素高度和宽度。在新线程中,我无法访问可写位图的任何属性,因为它认为我试图弄乱主线程的可写位图的属性。我收到异常:"调用线程无法访问此对象,因为其他线程拥有它。其他线程中的一些响应建议他们使用 Dispatcher.BeginInvoke ,但是如果我只想从中读取数据的可写位图对象的副本,这有必要吗?

Freezables冻结

时会失去其线程相关性。 尝试在 WritableBitmap 中调用 Freeze()

否则,您可以使用Clone()创建克隆,然后冻结该克隆

最新更新