title: How do I kill/suspend/close an asyncronous block in GCD?
body: <p>I've implemented a block that is dispatched asynchronously using GCD as follows:</p>
  
  <pre><code>__block BOOL retValue;
  dispatch_async(dispatch_get_global_queue(0, 0), ^{
      retValue = [self GCDHandler:actionName WithServiceType:serviceType :arguments];
  });
  
  return retValue;
  </code></pre>
  
  <p>How do I cancel such a block if it is running for longer than I would like? Is there a way to cancel GCD-dispatched blocks, or provide a timeout to them?</p>