title: Ensuring UI updates are on the UI thread
body: <p>Consider:</p>
  
  <pre><code>async Task FooAsync()
  {
      await BarAsync().ConfigureAwait(false);
  
      UpdateUI(); // Bug
  }
  </code></pre>
  
  <p>I'm looking for a way to systematically ensure this doesn't happen.</p>
  
  <p>Perhaps a naming convention, where methods that must be run on the UI thread get a special suffix. Or static checking, where an [UIThreadOnlyAttribute] on a method means that any caller must have that same attribute, and may not call <code>ConfigureAwait(false)</code>.</p>
  
  <p>Any suggestions?</p>