CancelEventArgs provides a Property called Cancel that different event handlers can set to tell the object that invoked the event whether it should continue execution cancel the action.
It seems that since events are multicast delegates, a simple raise of the event might invoke two delegates. The first one sets the Cancel property to true, the second one sets the Cancel property to false. Do component/framework 'cancelable' events support these scenarios and invoke each delegate one by one, checking the cancel flag at each step? What is the best practice to raise these types of events? Is only one instance of CancelEventArgs passed to each delegate? Are separate instances used?