.net 用户代码未处理InvalidOperationException。对象当前在别处使用。net

.net 用户代码未处理InvalidOperationException。对象当前在别处使用。net,.net,invalidoperationexception,.net,Invalidoperationexception,我相信我发现了一个类似的例子;然而,这是使用c#where,就像我使用.net一样,我不知道如何将它应用到我的程序中 我的程序试图制作一个街机游戏空间入侵者的基本复制品,为了控制他们的移动,我使用了背景工作者。这是代码通常得到错误的地方: If Invader4.Left < Me.Width - 75 Then Invader4.Left += 3 If Invader4.Tag = "OrangeSpaceInvader1" Then Invader4.

我相信我发现了一个类似的例子;然而,这是使用c#where,就像我使用.net一样,我不知道如何将它应用到我的程序中

我的程序试图制作一个街机游戏空间入侵者的基本复制品,为了控制他们的移动,我使用了背景工作者。这是代码通常得到错误的地方:

If Invader4.Left < Me.Width - 75 Then
    Invader4.Left += 3
    If Invader4.Tag = "OrangeSpaceInvader1" Then
        Invader4.Image = My.Resources.OrangeSpaceInvaderBlk2
        Invader4.Tag = "OrangeSpaceInvader2"
    ElseIf Invader4.Tag = "OrangeSpaceInvader2" Then
        Invader4.Image = My.Resources.OrangeSpaceInvaderBlk
        Invader4.Tag = "OrangeSpaceInvader1"
    End If
    Threading.Thread.Sleep(TimeSpan.FromSeconds(X))
End If

通过阅读其他问题的答案,我了解到多个线程正在试图同时访问入侵者,尽管我不确定在我的程序中发生了什么。在我启动控制每个入侵者移动的后台工作人员后,或当他们在中途时,或在两者之间或之后的任何位置时,程序可能会立即出现此错误。

要控制他们的移动,我使用后台工作人员
。您不能在工作线程上更新UI。UI到底是什么?我最近才开始编程,我不能说我对这个术语很熟悉。还有,谢谢!这离用户界面更近了一步。您无法从辅助进程更新图像属性。
Invader4.Left += 3