我声明了一个字段:
WriteableBitmap colorBitmap;
然后我创建了一个简单的线程来做一些事情:
private void doSomething()
{
// ... bla bla bla
colorBitmap = new WriteableBitmap(/* parameters */);
myImage.Source = colorBitmap; // error here:S
}
在 Windows_Loaded 事件中,我声明并启动了一个新线程:
private void window_Loaded(object sender, RoutedEventArgs e)
{
Thread th = new Thread(new ThreadStart(doSomething));
th.Start();
}
问题是我无法更改 myImage 的来源。我有一个错误,如:
InvalidOperationException 未处理调用线程无法访问此对象,因为不同的线程拥有它。
我尝试使用 Dispatcher.Invoke,但没有帮助...
Application.Current.Dispatcher.Invoke((Action)delegate
{
myImage.Source = colorBitmap;
});
我正在寻找一些答案,但从未找到与我完全一样的案例。any1 可以帮助我理解如何解决这样的问题(我最近遇到了同样的问题,但我无法调用该方法,因为其他线程拥有它)。