Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 获取计时器的订阅服务器列表。已用事件_.net_Vb.net_Events - Fatal编程技术网

.net 获取计时器的订阅服务器列表。已用事件

.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经过的公共事件”是一

我正试图找到一种方法来确定计时器已过事件的订阅者数量。在我的搜索中,似乎应该使用GetInvocationList()。然而,当我尝试:

Private _schedulingTimer As Timers.Timer

Private Sub SomeMethod()
        dim test = _schedulingTimer.Elapsed.GetInvocationList()
End Sub
我得到以下错误:

“作为ElapsedEventHandler经过的公共事件”是一个事件,不能直接调用。使用“RaiseEvent”语句引发事件


我做错什么了吗?有没有其他方法可以获取我想要的内容?

您可以对委托调用
GetInvocationList
,但事件不是委托-事件只是公开“订阅”和“取消订阅”操作的一致方法,以及实现这些操作的简单方法(使用委托)

访问事件的已注册处理程序并不是事件抽象的一部分。它们的具体存储方式是一个实现细节——就像属性的值如何存储在字段中,或者可以根据需要计算(例如,从多个字段)

在公开事件的类中,您通常可以访问调用列表(因为您可以确定事件是如何实现的),但“从外部”无法获得这些信息