异步多点代表(Asynchronous Multicast Delegates)

2019-08-08 08:01发布

我一直在做一些工作,最近的一个项目,使大量使用的事件。 其中一个是我需要做的是异步调用一个多播委托多个事件处理程序的事情。 我认为伎俩将调用BeginInvoke从GetInvocationList每个项目,但好像BeginInvoke的不存在有它出现。

有没有办法做到这一点还是我需要开始使用ThreadPool.QueueUserWorkItem和排序的推出自己的解决方案呢?

Answer 1:

GetInvocationList只是返回类型的数组Delegate不知道适当的签名。 但是,可以将每个返回的值转换为特定的委托类型:

foreach (MyDelegate action in multicast.GetInvocationList())
{
    action.BeginInvoke(...);
}


文章来源: Asynchronous Multicast Delegates