title: INotifyPropertyChanged with threads
body: <p>I have a </p>
  
  <pre><code> BindingList&lt;T&gt;
  </code></pre>
  
  <p>which is bound to a datagridview. One property in my class takes long to calculate, so I threaded the action. After the calculation I raise the OnPropertyChanged() event to notify the grid that the value is ready.</p>
  
  <p>At least, that's the theory. But since the OnPropertyChanged Method is called from a differend thread I get some weired exceptions in the OnRowPrePaint method of the grid.</p>
  
  <p>Can anybody tell me how I fore the OnPropertyChanged event to be excecuted in the main thread? I can not use Form.Invoke, since the class MyClass is not aware that it runs in a Winforms application.</p>
  
  <pre><code>public class MyClass : INotifyPropertyChanged
  {
      public int FastMember {get;set;}
  
      private int? slowMember;
      public SlowMember
      {
          get
          {
              if (slowMember.HasValue)
                 return slowMember.Value;
              else
              {
                 Thread t = new Thread(getSlowMember);
                 t.Start();
                 return -1;
              }
  
          }
      }
  
     private void getSlowMember()
     {
         Thread.Sleep(1000);
         slowMember = 5;
         OnPropertyChanged("SlowMember");
     }
  
     public event PropertyChangedEventHandler PropertyChanged;
     private void OnPropertyChanged(string propertyName)
     {
          PropertyChangingEventHandler eh = PropertyChanging;
          if (eh != null)
          {
              eh(this, e);
          }
     }
  
  }
  </code></pre>