title: Objective C - Calling dispatch_async show error
body: <p>I'm using dispatch_async to do something on other tread.</p>
  
  <pre><code>dispatch_queue_t backgroundQueue;
  </code></pre>
  
  <p>In the viewDidLoad:</p>
  
  <pre><code>- (void)viewDidLoad
  {
     [super viewDidLoad];
     // Do any additional setup after loading the view.
  
     backgroundQueue = dispatch_queue_create("dispatchName", NULL);
  }
  </code></pre>
  
  <p>Using it:</p>
  
  <pre><code>dispatch_async(backgroundQueue, ^
  {
      // Do something...
  });
  </code></pre>
  
  <p>Everything is OK until I'm calling this method again.
  The app is crush with error:</p>
  
  <pre><code>2014-09-29 11:34:10.626 hELLO[2785:389790] *** Assertion failure in -[UIKeyboardTaskQueue waitUntilAllTasksAreFinished], /SourceCache/UIKit_Sim/UIKit-3318/Keyboard/UIKeyboardTaskQueue.m:374
  2014-09-29 11:34:10.628 hELLO[2785:389790] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '-[UIKeyboardTaskQueue waitUntilAllTasksAreFinished] may only be called from the main thread.'
  </code></pre>