This line will throw an "Object reference not set to an instance of an object" error if there are no subscribers:
SampleEvent(this, new SampleEventArgs("Hello"));
A better example might look something like this:
if (SampleEvent == null)
{
return;
}
SampleEvent(this, new EventArgs());
Of course, this doesn't address concurrency problems, but it least it doesn't error out on the most common scenario.