This is the base class for multicast delegates. Multicast delegates are identical to normal delegates, except that their invocation list can hold more than one method at a time. You can use Delegate.Combine( ) to add a method to the list and Delegate.Remove( ) to remove one. In C#, you can also use the + operator (or += ) to add methods. When you invoke a multicast delegate, the methods are invoked synchronously one after the other. An error in one method can prevent the delegate from calling the other methods in its list. Multicast delegates can also be invoked asynchronously, meaning that the entire call chain is invoked serially by a single thread out of the system thread pool. If it is desirable to invoke each delegate in the chain on its own asynchronous thread instead, then use GetInvocationList( ) to obtain the list of delegates and asynchronously invoke each one. public abstract class MulticastDelegate : Delegate { // Protected Constructors protected MulticastDelegate (object target , string method ); protected MulticastDelegate (Type target , string method ); // Public Static Methods public static bool operator != (MulticastDelegate d1 , MulticastDelegate d2 ); public static bool operator = = (MulticastDelegate d1 , MulticastDelegate d2 ); // Public Instance Methods public sealed override bool Equals (object obj ); // overrides Delegate public sealed override int GetHashCode ( ); // overrides Delegate public sealed override Delegate[ ] GetInvocationList ( ); // overrides Delegate public override void GetObjectData ( System.Runtime.Serialization.SerializationInfo info , System.Runtime.Serialization.StreamingContext context ) // overrides Delegate // Protected Instance Methods protected sealed override Delegate CombineImpl ( Delegate follow ) // overrides Delegate protected sealed override object DynamicInvokeImpl (object[ ] args ) // overrides Delegate protected sealed override Delegate RemoveImpl (Delegate value ) // overrides Delegate } HierarchyObject Delegate(ICloneable , System.Runtime.Serialization.ISerializable) MulticastDelegate SubclassesMultiple types |