我正在尝试使用以下代码隐藏我目前在WPF上的所有图像:
Dim theImgs() As Controls.Image = {picNextTopic1, picNextTopic2, picNextTopic3, picNextTopic4, picNextTopic5, picNextTopic6, picNextTopic7, picNextTopic8, picNextTopic9, picNextTopic10, picNextTopic11, picNextTopic12, picNextTopic13, picNextTopic14, picNextTopic15, picNextTopic16}
Dim intX As Integer = 0
Do Until intX = theImgs.Length
Try
theImgs(intX).Visibility = Visibility.Hidden
intX += 1
Catch ex As Exception
MsgBox(ex.Message)
End Try
Loop
但是,在运行上面的代码时,我收到此错误:
调用线程无法访问此对象,因为另一个线程拥有它
如何解决此错误?
答案 0 :(得分:1)
变化:
theImgs(intX).Visibility = Visibility.Hidden;
要:
C#
Application.Current.Dispatcher.Invoke(new Action(() =>
{
theImgs[intX].Visibility = Visibility.Hidden;
});
VB
Application.Current.Dispatcher.Invoke(
Function(){
theImgs(intX).Visibility = Visibility.Hidden
}
)
答案 1 :(得分:0)
尝试链接here
以下代码应该可以正常工作:
Application.Current.Dispatcher.Invoke(DispatcherPriority.Background, _
New Action(Function() theImgs(intX).Visibility = Visibility.Hidden))