私が構築している機器を制御するこのコードがあります。メインの Sub はハードウェアにいくつかのコマンドを送信し、アクションの実行に必要な時間を常に待機します。アルゴリズムは次のようなものです。
Private Sub StartAuto()
Send command1 to hardware and wait x seconds
Send command2 to hardware and wait y seconds
Send command3 to hardware and wait z seconds
etc
End Sub
問題は、このルーチンの実行を停止ボタンで停止できるようにしたいということです。これまでのところ、すべてのコマンド間でブール値をチェックするよりも良い方法を考えたり見つけたりすることはできませんでした。これはひどいことです:
Private Sub btStopAuto_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btStopAuto.Click
keepRunning = false
End Sub
Private Sub StartAuto()
keepRunning = True
Send command1 to hardware and wait x seconds
If (keepRunning = false)
Exit Sub
End If
Send command2 to hardware and wait y seconds
If (keepRunning = false)
Exit Sub
End If
Send command3 to hardware and wait z seconds
If (keepRunning = false)
Exit Sub
End If
etc
End Sub
ループを使用することを考えましWhile
たが、手順全体が完了した後にのみ検証されます。
基本的に私が必要とするのは次のようなものです
Private Sub btStopAuto_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btStopAuto.Click
StartAuto.Exit
End Sub
明らかにこれは存在しません。それを行う方法についてのアイデアはありますか? 現在、手順中に問題が発生した場合は、デバッグを中止する必要がありますが、それは開発以外では機能しません。
ありがとうございました。