怎么样在类中线程产生的事件能被主线程直接使用呢?
怎么样在类中线程产生的事件能被主线程直接使用呢?
示例:
Imports System.Threading
Public Class AComponent
Public Event myEvent As EventHandler
Private Sub DoWork()
RaiseEvent myEvent(Me, New EventArgs)
End Sub
Public Sub Work()
Dim aThread As New Thread(AddressOf DoWork)
aThread.Start()
End Sub
End Class
Public Class Form1
Private WithEvents _Component As New AComponent
Private Sub btnStart_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
_Component.Work()
End Sub
'AComponent 产的MYEVENT事件
Private Sub myEvent(ByVal sender As System.Object, ByVal e As System.EventArgs)
Label1.Visible = False
' 这里报错 线程间操作无效: 从不是创建控件“Label1”的线程访问它。
' 这里不想通过INVOKE去使用,我想就直接用LABEL1.VISIBLE = FALSE,在类中要怎么产生这种事件呢?
End Sub
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
AddHandler _Component.myEvent, AddressOf myEvent
End Sub
End Class