EventHandler vs. EventHandler<TEventArgs>
Solution 1:
I believe both the accepted answer and the MSDN documentation you link to state the same thing, to use either EventHandler or EventHandler<"T"> (the less typing one) instead of creating your own custom delegates.
From the accepted answer: "...you should probably prefer the former over the latter because it's clearer and requires less typing."
The former being:
public event EventHandler<MyEventArgs> SomeEvent;
And from MSDN:
For scenarios where the EventHandler and EventHandler<"TEventArgs"> delegates do not work, you can define a delegate.
Defining a delegate is the 'latter' from the accepted answer:
public delegate void MyEventHandler(object sender, MyEventArgs e);