我相信我发现了与InvalidOperationException 类似的案例 - 对象当前正在其他地方使用;但是,那是在我使用 .net 的地方使用 c#,我不明白如何将它应用到我的程序中。
我的程序是尝试制作街机游戏太空入侵者的基本复制品,并使用后台工作人员来控制他们的移动。这是代码通常会出错的地方:
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
这不仅发生在 Invader4 上,正如我所看到的关于 Invader13、Invader2 以及几乎所有这些的弹出。我总共有 16 个,Invaders1-16。我的这段特定代码是关于将它们在屏幕上向右移动。包含错误的框的代码行作为第二行,
Invader4.Left += 3
我通过阅读其他问题的答案了解到多个线程正在尝试同时访问入侵者,尽管我不确定我的程序中发生了什么。在我启动控制每个入侵者移动的后台工作人员后,或者当他们处于一半时,或者介于两者之间或之后的任何位置时,程序可能会立即出现此错误。