C# extension methods for the EventHandler class.

public static class EventHandlerExtensions
{
    // Thread safe event raising
    // http://www.extensionmethod.net/2115/csharp/eventhandler-t/thread-safe-event-raising
    public static void Raise<T>(this EventHandler<T> eventHandler, object sender, T e) where T : EventArgs
    {
        var handler = eventHandler;
        if (handler != null)
        {
            handler(sender, e);
        }
    }
}

//
// Example
//

public event EventHandler<SomeEventArgs> SomeEvent;

SomeEvent.Raise(this, e);