如何使用按钮打破循环并使其在运行时响应?

时间:2010-02-07 07:06:51

标签: vb.net

Imports System
Imports System.Net
Imports System.IO
Imports System.Threading.Thread

Public Class Form1
    Public errorz As String
    Public votestatus As String
    Public videoid As String
    Public votetries As String

    Public Sub Main()
    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        If RadioButton1.Checked Then
            votestatus = "YES"
        End If

        If RadioButton2.Checked Then
            votestatus = "NO"
        End If

        videoid = TextBox1.Text
        votetries = TextBox2.Text

        For i As Integer = 1 To votetries Step 1
            MsgBox("Hi")
            Sleep(5000)
        Next


    End Sub
End Class

现在发生的是它运行,并在循环中冻结。

点击时我想要另一个按钮会停止循环。

此外,睡眠功能似乎不起作用,因为我每毫秒都会收到“嗨”警报。

2 个答案:

答案 0 :(得分:2)

你必须在后台线程中运行long操作才能阻止UI线程,例如c#中的BackgroundWorker类,不知道它是否在vb中可用。

答案 1 :(得分:0)

您可以在VB中使用BackgroundWorker。

或者,如果您需要确保在循环执行时处理按钮,则可以在循环内添加application.doevents。您可以对要用于中断循环的按钮使用事件处理程序,并设置循环可以检查的标志变量。