classes/clsBroker.vb
(开头部分) 5KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
''' <summary>
''' 发布 订阅的中间类
''' 使用方法,在发布中定义类对象,并引发事件。
''' 在订阅类中注册回调函数。
''' </summary>
Public Class ClsBroker
'=======================================
'用于窗体间传递参数值
'---------------------------------------
'定义一个委托
Public Delegate Sub TransmateObjectEvent(ByVal sender As Object, ByVal e As TransEventArg)
'事件的委托列表,用来注册回调函数
Public Shared onChangeList As List(Of TransmateObjectEvent)
'用来同步的对象
Public Shared m_obj As Object
'定义一个自定义事件
Public Shared Custom Event OnChange As TransmateObjectEvent
'添加回调函数
AddHandler(value As TransmateObjectEvent)
If onChangeList Is Nothing Then
onChangeList = New List(Of TransmateObjectEvent)
End If
If m_obj Is Nothing Then
m_obj = New Object()
End If
'同步锁
SyncLock m_obj
onChangeList.Add(value)
End SyncLock
End AddHandler
'移除回调函数
RemoveHandler(value As TransmateObjectEvent)
If onChangeList Is Nothing Then
Return
End If
SyncLock m_obj
onChangeList.Remove(value)
End SyncLock
End RemoveHandler
'引发事件,广播回调
RaiseEvent(sender As Object, e As TransEventArg)
If onChangeList Is Nothing Then
Return
End If
For Each tmpH As TransmateObjectEvent In onChangeList
tmpH.Invoke(sender, e)
Next
End RaiseEvent
End Event
后面还有 151 行代码,解锁后查看完整代码
24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明
AI 解读
登录后可用,每次 10 积分,解读结果公开显示在下面。
还没有人解读过这个文件。
