title: Can I assume that all execution of a method will be on the same thread in C#?
body: <p>Consider the following method</p>
  
  <pre><code>public void DoSomething()
  {
      Thread initialThread = Thread.CurrentThread;
      //Do something 
      Thread endingThread = Thread.CurrentThread;
      Debug.Assert(object.ReferenceEquals(initialThread, endingThread));
  }
  </code></pre>
  
  <p>Will the assertion always pass in C#, assuming the code is compiled and is not an iterator? </p>