use*_*603 2 vb.net loops while-loop
我正在使用While循环,它根据用户输入的值循环一定数量的循环(1-576).它由用户单击"开始"按钮激活,但我希望能够使用"Escape"键取消它.
但是,当循环进行时,我无法让程序识别任何按键.
Private Sub OnGlobalKeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles kh.KeyDown
lblInput.Text = String.Format("'{0}' Code:{1}", e.KeyCode, CInt(e.KeyCode).ToString())
If e.KeyCode = CType(27, Keys) Then
count = 0
loops = 0
End If
End Sub
Run Code Online (Sandbox Code Playgroud)
我的循环
Private Sub RUNLOOP()
While loops >= 1
' my code that runs in the loop
loop = loop - 1
End While
End Sub
Run Code Online (Sandbox Code Playgroud)
当循环运行时,我的按键不会注册,否则它们会正常注册.
您是否考虑过BackgroundWorker在后台线程中执行while循环代码,确保您的GUI保持响应(=调整/重新绘制表单并让用户"达到"实现取消正在运行的工作的方式)而无需Application.DoEvents在内部循环"假"这种行为?
如果您已经在.NET Framework 4.0上,则可以尝试使用并行编程而不是BackgroundWorker.