Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 如何在visual basic中停止和启动文本文件或数据库上运行的数字循环_Vb.net_Loops - Fatal编程技术网

Vb.net 如何在visual basic中停止和启动文本文件或数据库上运行的数字循环

Vb.net 如何在visual basic中停止和启动文本文件或数据库上运行的数字循环,vb.net,loops,Vb.net,Loops,我需要一个小应用程序,随机洗牌一组预加载的数字。洗牌将在屏幕上显示,并持续(循环)直到按下一个键,一旦发生,它将显示中奖号码。 我正在使用visual Basic 2008开发应用程序,但我的问题是,当我启动应用程序并按下某个键时,它会在文本文件中循环显示我的数字,它也会显示事件,但如果我按下某个键停止,它将不会停止…需要帮助吗 我正在开发这个应用程序,但我的问题是如何停止循环并用按键继续。下面是应用程序代码 按布尔值运行的Dim=False Sub ReadAccounts() Di

我需要一个小应用程序,随机洗牌一组预加载的数字。洗牌将在屏幕上显示,并持续(循环)直到按下一个键,一旦发生,它将显示中奖号码。 我正在使用visual Basic 2008开发应用程序,但我的问题是,当我启动应用程序并按下某个键时,它会在文本文件中循环显示我的数字,它也会显示事件,但如果我按下某个键停止,它将不会停止…需要帮助吗

我正在开发这个应用程序,但我的问题是如何停止循环并用按键继续。下面是应用程序代码

按布尔值运行的Dim=False

Sub ReadAccounts()

    Dim arr As New ArrayList
    arr.Add("1366-665885-666-22650")
    arr.Add("1366-665885-666-11111")
    arr.Add("1366-665885-666-11111")
    arr.Add("1366-665885-666-22650")
    arr.Add("1366-665885-666-22650")
    arr.Add("1366-665885-666-11111")
    arr.Add("1366-665885-666-11111")
    arr.Add("1366-665885-666-22650")
    arr.Add("1366-665885-666-22650")
    arr.Add("1366-665885-666-11111")
    arr.Add("1366-665885-666-11111")
    arr.Add("1366-665885-666-22650")
    arr.Add("1366-665885-666-11111")
    arr.Add("1366-665885-666-22650")
    arr.Add("1366-665885-666-22650")
    arr.Add("1366-665885-666-11111")
    arr.Add("1366-665885-666-11111")
    arr.Add("1366-665885-666-22650")
    arr.Add("1366-665885-666-22650")

    Try
        Dim rnd As New Random

        For i As Integer = 0 To arr.Count - 1

            Dim Disarray As String = arr(i).ToString()
            System.Threading.Thread.Sleep(100) ' set sleep time
            lblAccounts.Text = Disarray

            lblAccounts.Update()
            Application.DoEvents()

        Next

        If Running Then
            Running = False
        End If

    Catch ex As Exception
        MessageBox.Show(ex.Message)
    End Try
    ' e.Handled = True
End Sub

Private Sub Form2_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles MyBase.KeyPress
    If System.Char.IsWhiteSpace(e.KeyChar) = True Then

        If Running Then
            Running = False
        Else
            Running = True
            ReadAccounts()
        End If

    End If

End Sub

首先,我将把文件中的数字加载到数组或列表中,而不是在循环中不断地从文件中读取

然后它取决于你的项目类型。如果它是一个控制台应用程序,我会测试每个循环是否有按键:

If Console.KeyAvailable Then
    'terminate your loop
End If
我还将在循环中包含一个
System.Threading.Thread.Sleep()
,以控制数字的显示频率。否则,您的电脑将变得无响应


如果它是一个WinForms应用程序,那么您可以使用
System.Windows.Forms.Timer
。您可以将其放置在窗体上,并在“属性”窗口中进行配置。为计时器的Tick事件添加一个事件处理程序(很像为按钮添加一个click事件处理程序),您将在其中放置显示下一个随机数的代码。根本不需要循环。这样,您的应用程序将始终保持响应。

控制台应用程序?WinForms?等等。发布你的代码也会有帮助。循环可能会阻止从控制台/应用程序读取的任何输入,直到它完成。是的,但现在我无法停止循环,循环也从最后一个数字开始,下面是我的代码。