title: GCD to perform task in main thread
body: <p>I have a callback which might come from any thread. When I get this callback, then I would like to perform a certain task on the main thread.</p>
  
  <p>Do I need to check whether I already am on the main thread - or is there any penalty by not performing this check befora calling the code below?</p>
  
  <pre><code>dispatch_async(dispatch_get_main_queue(), ^{
     // do work here
  });
  </code></pre>