When invoking the multicast delegate, each delegate instance in the linked list is called sequentially. (Generally, delegates are called in the order they were added but this behavior is not specified within the CLI specification and furthermore, it can be overridden. Therefore, programmers should not depend on an invocation order.) This sequential invocation, however, leads to problems if the invoked method throws an exception or if the delegate itself returns data.
http://msdn.microsoft.com/en-us/vcsharp/bb508935.aspx
我也是刚才看到你问题才知道的,
如果你有C++经验的话,这种case就见怪不怪了 :)