我在后台(线程池)线程上运行以下代码时收到UnauthorizedAccessException(“无效的跨线程访问.”),这是预期的行为吗?
var uri = new Uri("resourcevault/images/defaultSearch.png", UriKind.Relative);
var info = Application.GetResourceStream(uri);
// this line throws exception....
this.defaultSearchImage = new BitmapImage();
最佳答案 原因是因为您的后台线程无法直接用于更新UI.相反,您需要使用Dispatcher将数据封送到UI线程.像这样的东西:
var uri = new Uri("resourcevault/images/defaultSearch.png", UriKind.Relative);
var info = Application.GetResourceStream(uri);
Dispatcher.BeginInvoke(() => {
this.defaultSearchImage = new BitmapImage();
});