title: Cross-thread operation exception when worker thread adds to BindingList
body: <p>I have a worker thread that needs to add items to a <code>BindingList</code>. However, the <code>BindingList</code> is databound to a <code>DataGridView</code>. So, when I try to add to the list, I get an <code>InvalidOperationException (Cross-thread operation not valid: Control accessed from a thread other than the thread it was created on.)</code></p>
  
  <p>Normally for this exception you would do:</p>
  
  <pre><code>if(winformControl.InvokeRequired) {
      winformControl.Invoke(MethodDelegate);
  }
  </code></pre>
  
  <p>However, the databinding confuses things, as there is no Winform control in sight. All I have is the following line, which throws the exception:</p>
  
  <pre><code>ClassInstance.MyBindingList.Add(myObject);
  </code></pre>
  
  <p>If you have a solution specifically for this scenario, great. </p>
  
  <p>If not, how can I get the worker thread to tell my main thread to perform a particular method (with several parameters supplied by the worker thread)? This may be a preferable option, since my worker thread is actually doing a bunch of stuff at the moment (like writing to the database), and I'm not sure if everything is thread-safe. I'm a student, and new to multithreading, and it really is not my forte yet.</p>