在调用多播委托时,应该使用GetInvocationList逐个调用委托:
public void IterateAll()
{
if( _doExecute != null )
{
foreach( ExecuteCallback doSingleExecute in _doExecute.GetInvocationList() )
{
try
{
doSingleExecute();
}
catch
{
// This delegate threw an exception
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
是否有一种方法可以对此进行泛化,以便通过包装此迭代来回到单个调用以隐藏它,以便可以再次调用整个多播委托?这将更接近故意水平.