title: GCD for simple download queue
body: <p>I want to create a simple download queue, i don't need much functionality, just a serial queue so that when i run my download process it will just wait for the first download to finish before starting the second ect.  Im using parse-server which runs its query and get data functions in the background anyway but it seems to run things concurrently.</p>
  
  <p>I was thinking of just using GCD as i don't directly see the need to use create NSURL sessions to download my files when parse-server functionality is handling this.</p>
  
  <p>To this end i have defined a queue:</p>
  
  <pre><code>let downloadQueue = DispatchQueue(label: "downloadQueue", qos: .background)
  </code></pre>
  
  <p>And then thought that wrapping my download function in this queue would add the items to be downloaded to the back of the queue.  However this doesn't seem to happen, and files begin downloading as soon as they are selected.</p>
  
  <pre><code>func downloadDataToDevice(cell: JourneyCollectionViewCell, selectedIndexPath: IndexPath){
  
      self.downloadQueue.async {
  
          // query and progressBlock to track download progress
      }
  }
  </code></pre>