0

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、およびそれらのほぼすべてで発生します。Invaders1~16の合計16人います。私のコードのこの特定の部分は、画面を右に移動することに関するものです。エラーを含むボックスが 2 行目となるコード行は、

Invader4.Left += 3

他の質問の回答を読んで、複数のスレッドが一度に侵入者にアクセスしようとしていることがわかりましたが、プログラムのどこでそれが起こっているのかわかりません。プログラムは、各侵入者の動きを制御するバックグラウンド ワーカーを開始した直後、またはそれらが途中で停止したとき、またはその間または後のどこかで、このエラーを受け取る可能性があります。

4

0 に答える 0