title: C# .NET 3.5 : How to invoke an event handler and wait for it to complete
body: <p>I have a class containing a worker thread which receives data from a queue in a loop.</p>
  
  <p>Another part of the app sinks an event from this class, which the class raises for each queue item.</p>
  
  <p>These events are fired asynchronously, so at busy times the other part of the app can be processing several events at once.</p>
  
  <p>This should be fine but we've discovered a scenario where this can cause problems.</p>
  
  <p>We need a quick solution while the main issue gets addressed. Does the framework provide a simple way I can force the worker thread to wait while each event gets processed (so they are processed sequentially)? If not, what's the easiest way to implement this?</p>