12
我最近在一個廣泛使用事件的項目上做了一些工作。我需要做的事情之一是在多播委託上異步調用多個事件處理程序。我認爲訣竅是從GetInvocationList的每個項目調用BeginInvoke,但似乎BeginInvoke在那裏不存在。異步多播代理
有沒有辦法做到這一點,還是我需要開始使用ThreadPool.QueueUserWorkItem和排序我自己的解決方案?
我最近在一個廣泛使用事件的項目上做了一些工作。我需要做的事情之一是在多播委託上異步調用多個事件處理程序。我認爲訣竅是從GetInvocationList的每個項目調用BeginInvoke,但似乎BeginInvoke在那裏不存在。異步多播代理
有沒有辦法做到這一點,還是我需要開始使用ThreadPool.QueueUserWorkItem和排序我自己的解決方案?
GetInvocationList
只是返回不知道相應簽名的Delegate
類型的數組。但是,您可以將每個返回的值轉換爲您的特定代表類型:
foreach (MyDelegate action in multicast.GetInvocationList())
{
action.BeginInvoke(...);
}
D'oh!當然!謝謝,Jon。 :) – 2009-09-21 08:17:10