Vb.net 如何执行正确的循环

Vb.net 如何执行正确的循环,vb.net,Vb.net,我想换几个地址。但是,我需要代码几乎一致地更新它们。代码可以工作,但是,当复选框被选中时,它会冻结,不允许我取消选中它。(停止更改地址) Iv'e还尝试: Loop While CheckBox1.CheckState = 1 但这无助于解决问题 代码: 当您单击复选框时,应用程序将变得无响应,因为您在事件处理程序中编写了无限循环。应用程序的主线程处理UI事件的执行 您需要创建一个独立的机制,该机制将持续执行您的逻辑,例如使用或 因此,复选框的事件处理程序仅启用/禁用BackgroundWor

我想换几个地址。但是,我需要代码几乎一致地更新它们。代码可以工作,但是,当复选框被选中时,它会冻结,不允许我取消选中它。(停止更改地址)

Iv'e还尝试:

Loop While CheckBox1.CheckState = 1
但这无助于解决问题

代码:


当您单击复选框时,应用程序将变得无响应,因为您在事件处理程序中编写了无限循环。应用程序的主线程处理UI事件的执行

您需要创建一个独立的机制,该机制将持续执行您的逻辑,例如使用或


因此,复选框的事件处理程序仅启用/禁用
BackgroundWorker
或分离的
线程
当您单击复选框时,应用程序将变得无响应,因为您在事件处理程序中写入了无限循环。应用程序的主线程处理UI事件的执行

您需要创建一个独立的机制,该机制将持续执行您的逻辑,例如使用或


因此,复选框的事件处理程序仅启用/禁用
BackgroundWorker
或分离的
线程

[Problem Solved]感谢大家的帮助

    Dim Timer1 As New Timer
Private Sub CheckBox1_CheckedChanged(sender As Object, e As EventArgs) Handles CheckBox1.CheckedChanged
    If CheckBox1.CheckState = 1 Then
        AddHandler Timer1.Tick, AddressOf Timer1_Tick
        Timer1.Interval = 500
        Timer1.Start()

    Else
        RemoveHandler Timer1.Tick, AddressOf Timer1_Tick
        Timer1.Stop()
    End If
End Sub

Private Sub Timer1_Tick(sender As Object, e As EventArgs)
    WriteInteger("Notepad", &H49E6D4, 99)
    WriteInteger("Notepad", &H49E6CC, 99)
End Sub

[问题解决]感谢大家的帮助

    Dim Timer1 As New Timer
Private Sub CheckBox1_CheckedChanged(sender As Object, e As EventArgs) Handles CheckBox1.CheckedChanged
    If CheckBox1.CheckState = 1 Then
        AddHandler Timer1.Tick, AddressOf Timer1_Tick
        Timer1.Interval = 500
        Timer1.Start()

    Else
        RemoveHandler Timer1.Tick, AddressOf Timer1_Tick
        Timer1.Stop()
    End If
End Sub

Private Sub Timer1_Tick(sender As Object, e As EventArgs)
    WriteInteger("Notepad", &H49E6D4, 99)
    WriteInteger("Notepad", &H49E6CC, 99)
End Sub

您希望如何跳出循环?通过取消选中复选框1。但是您没有测试让您跳出循环。而是用一对按钮、一个定时器和一个类级变量来实现。好吧,我给你一个快照,你不能取消选中它,因为你的代码在无限循环中不会响应,即使您能够取消检查,您在哪里检查它在do while循环中签入的条件。您希望如何退出循环?取消检查复选框1。但是您没有让您退出循环的测试。而是用一对按钮、一个计时器和一个类级变量来实现。好吧,我给你一个快照,你不能取消选中它,因为你的代码不会响应,因为它是在无限循环中,即使你能够取消选中它,你在哪里检查它在do while循环中被选中的条件。请注意,我会停止计时器,然后移除处理器。不确定它是否有任何影响,但这是我认为它应该在逻辑上工作的方式。请注意,我会停止计时器,然后删除处理程序。不确定它是否有任何影响,但这是我认为它在逻辑上应该如何工作的。