当前位置: 代码迷 >> VB Dotnet >> vb.net 多线程事件响应解决方案
  详细解决方案

vb.net 多线程事件响应解决方案

热度:28   发布时间:2016-04-25 02:06:10.0
vb.net 多线程事件响应
代码如下
1.新建一个类
Public Class Class1
    Public Event mytest()
    Public Sub main()
        For i As Long = 1 To 1000
            RaiseEvent mytest()
        Next
    End Sub
End Class
2.新建一个窗体和按钮
Imports System.Threading
Public Class Form2
    Public WithEvents x As New Class1
    Dim y As Long = 1

    Private Sub x_mytest() Handles x.mytest
        Debug.WriteLine(y.ToString)
        y += 1
    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        'Dim Tasks As New Class1()
        'Dim Thread1 As New System.Threading.Thread(AddressOf Tasks.main)
        x.main()
    End Sub
End Class
问题:当代码是x.main()时,及时窗口会显示1到1000,现在注释调x.main换成上面被注释代码后,及时窗口无响应了,请高手指点
------解决思路----------------------
你把回调事件注册给x了,你也应该在线程里执行x.main,而不是Tasks
  相关解决方案