title: How to maintain Thread context across async await model in C#?
body: <p>Is using ThreadStatic and setting the context every time await completes "an option"? Is there another way?</p>
  
  <pre><code>public async void Test()
  {
      // This is in Thread 1
      Foo foo = new Foo();
      Context.context = "context1"; // This is ThreadStatic
      string result = await foo.CallAsynx();
  
      // This is most likely Thread 2
      Context.context = "context1";   // This might be a different thread and so resetting context    
  }
  </code></pre>
  
  <p>Now is there another way if I don't want to use ThreadStatic?</p>