There are two parts to this question:
Does raising an event block the thread, or does it start execution of EventHandlers asynchronously and the thread goes continues on at the same time?
Are the individual EventHandlers (subscribed to the event) run synchronously one after another, or are they run asynchronously with no guarantee that others aren't running at the same time?
This is a general answer and reflects the default behavior:
Having said that, every class that provides events can choose to implement its event asynchronously. IDesign provides a class called EventsHelper
that simplifies this.
[Note] this link requires you to provide an e-mail address to download EventsHelper class. (I am not affiliated in any way)