title: How to raise an event in C# - Best Approach
body: <p>I am writing a Windows Form application. It has a thread to perform some operation and when the operation found something it has to notify the main form to change a control.</p>
  <p>Currently the notification uses the C# event hadling described in the following MSDN page:
  <a href="http://msdn.microsoft.com/en-us/library/wkzf914z(VS.71).aspx" rel="nofollow noreferrer">http://msdn.microsoft.com/en-us/library/wkzf914z(VS.71).aspx</a></p>
  <p>But I am not sure about the delegate. Since in the situation I described above the thread invokes the delegate. Is this a thread safe approach to raise the event?</p>
  <p>Is it better to implement Windows Messages (<code>SendMessage</code>) in C# and then implement the message handler in the <code>WindowProc</code>.</p>