Safari Books Online is a digital library providing on-demand subscription access to thousands of learning resources.
When using delegates, two emergent roles commonly appear:
broadcaster and subscriber. The
broadcaster is a type that contains a delegate field.
The broadcaster decides when to broadcast, by invoking the delegate. The
subscribers are the method target recipients. A
subscriber decides when to start and stop listening, by calling += and -= on
the broadcaster’s delegate. A subscriber does not know about, or interfere
with, other subscribers.
Events are a language feature that formalizes this pattern. An
event is a construct that exposes just
the subset of delegate features required for the broadcaster/subscriber
model. The main purpose of events is to prevent subscribers from
interfering with one another.