title: What does SynchronizationContext do?
body: <p>In the book Programming C#, it has some sample code about <code>SynchronizationContext</code>:</p>
  
  <pre><code>SynchronizationContext originalContext = SynchronizationContext.Current;
  ThreadPool.QueueUserWorkItem(delegate {
      string text = File.ReadAllText(@"c:\temp\log.txt");
      originalContext.Post(delegate {
          myTextBox.Text = text;
      }, null);
  });
  </code></pre>
  
  <p>I'm a beginner in threads, so please answer in detail.
  First, I don't know what does context mean, what does the program save in the <code>originalContext</code>?  And when the <code>Post</code> method is fired, what will the UI thread do?<br>
  If I ask some silly things, please correct me, thanks!</p>
  
  <p>EDIT: For example, what if I just write <code>myTextBox.Text = text;</code> in the method, what's the difference?</p>