Name
MulticastDelegate
Synopsis
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(objecttarget
, stringmethod
); protected MulticastDelegate(Typetarget
, stringmethod
); // Public Static Methods public static bool operator !=(MulticastDelegated1
, MulticastDelegated2
); public static bool operator = =(MulticastDelegated1
, MulticastDelegated2
); // Public Instance Methods public sealed override bool Equals(objectobj
); // overrides Delegate public sealed override int GetHashCode( ); // overrides Delegate public sealed override Delegate[ ] GetInvocationList( ); ...
Get C# in a Nutshell, Second Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.