I know that in C#, there are several built in events that pass a parameter (\"Cancel\") which if set to true will stop further execution in the object that raised the eve
Here is the way that I avoid calling further subscribers once one of them asserts cancel:
var tmp = AutoBalanceTriggered;
if (tmp != null)
{
var args = new CancelEventArgs();
foreach (EventHandler t in tmp.GetInvocationList())
{
t(this, args);
if (args.Cancel) // a client cancelled the operation
{
break;
}
}
}