.net 获取计时器的订阅服务器列表。已用事件
我正试图找到一种方法来确定计时器已过事件的订阅者数量。在我的搜索中,似乎应该使用GetInvocationList()。然而,当我尝试:.net 获取计时器的订阅服务器列表。已用事件,.net,vb.net,events,.net,Vb.net,Events,我正试图找到一种方法来确定计时器已过事件的订阅者数量。在我的搜索中,似乎应该使用GetInvocationList()。然而,当我尝试: Private _schedulingTimer As Timers.Timer Private Sub SomeMethod() dim test = _schedulingTimer.Elapsed.GetInvocationList() End Sub 我得到以下错误: “作为ElapsedEventHandler经过的公共事件”是一
Private _schedulingTimer As Timers.Timer
Private Sub SomeMethod()
dim test = _schedulingTimer.Elapsed.GetInvocationList()
End Sub
我得到以下错误:
“作为ElapsedEventHandler经过的公共事件”是一个事件,不能直接调用。使用“RaiseEvent”语句引发事件
我做错什么了吗?有没有其他方法可以获取我想要的内容?您可以对委托调用
GetInvocationList
,但事件不是委托-事件只是公开“订阅”和“取消订阅”操作的一致方法,以及实现这些操作的简单方法(使用委托)
访问事件的已注册处理程序并不是事件抽象的一部分。它们的具体存储方式是一个实现细节——就像属性的值如何存储在字段中,或者可以根据需要计算(例如,从多个字段)
在公开事件的类中,您通常可以访问调用列表(因为您可以确定事件是如何实现的),但“从外部”无法获得这些信息