Control.Invoke() vs. Control.BeginInvoke()
<blockquote>
  <p><strong>Possible Duplicate:</strong><br>
  <a href="http://stackoverflow.com/questions/229554/whats-the-difference-between-invoke-and-begininvoke">What&#39;s the difference between Invoke() and BeginInvoke()</a>  </p>
</blockquote>



<p>First of all, I would like to apologize for my bad grammar since English is not my native tongue.</p>

<p>This is my understanding:</p>

<pre><code>Control.Invoke(delegated_method)  // Executes on the thread wich the control was created on
witch holds its handle ,typically  this would be the main thread of a winform application .

Control.BeginInvoke(delegated_method // Executes asynchronously on a threadPool Thread .
</code></pre>

<p>According to MSDN, it says </p>

<blockquote>
  <p>Executes a delegate asynchronously on
  the thread that the control's
  underlying handle was created on.</p>
</blockquote>

<p>My QUESTION : </p>

<p>Am I to understand that beginInvoke treats the main thread in this matter as it would the thread pool, and execute the delegated method on the main thread when it "gets a chance" ?</p>

<p>Another question which is raised, 
is it possible to create a control not on the main thread ?
if so could someone give me an example? </p>
