首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > VB Dotnet >

窗体起步的时候自动循环一条线程,可是输不值到外面

2013-04-02 
窗体启动的时候自动循环一条线程,可是输不值到外面Private Sub Form1_Load(ByVal sender As System.Object

窗体启动的时候自动循环一条线程,可是输不值到外面

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim Thread1 As New System.Threading.Thread(AddressOf abc)
        Thread1.Start()
        Label2.Text = j

        'Thread1.Join()
    End Sub

    Public Sub abc()
        Do
            If i Then
                j += 1
                If j = 500000 Then j = 0
                Application.DoEvents()
            End If
        Loop

    End Sub

我要实现的功能:窗体启动的时候,不停地执行线程1:线程1里面有一个判断语句,If i Then,根据外面的按钮改变i的 Boolean值,控制循环,同时当i=true时,执行j+=1,并且在窗体中显示i,j的当时值,奇怪的时候,J的值输出不了到窗体中。求方法求解析求帮助~
[解决办法]
给分吧



Public Class Form1
    Private i As Boolean = True, j As Integer = 0
    Public Delegate Sub DelegateSub(ByVal text As String)

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

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim Thread1 As New System.Threading.Thread(AddressOf abc)
        Thread1.Start()
    End Sub

    Private Sub SetText(ByVal value As String)
        Label2.Text = value
    End Sub
    Public Sub abc()
        Do
            If i Then
                j += 1
                If j = 500000 Then j = 0
                Invoke(New DelegateSub(AddressOf SetText), j.ToString)
                Application.DoEvents()
            End If
        Loop

    End Sub
End Class



热点排行