title: How to execute block on thread instance?
body: <p>I perform <code>URLSession.shared.downloadTask</code> request, but would like to execute code on the same thread the <code>downloadTask</code> was executed on. For example:</p>
  
  <pre><code>func sample() {
     let thread = Thread.current
  
     URLSession.shared.downloadTask(with: file) {
        someFunc() //How to execute on thread variable?
     }.resume()
  }
  </code></pre>
  
  <p>In the <code>downloadTask</code> completion handler, it is running on a background thread. However, I'd like to call <code>someFunc()</code> on the same thread <code>sample()</code> was called on. How do I do something like <code>Thread.current.async {...}</code> so I can do this:</p>
  
  <pre><code>func sample() {
     let thread = Thread.current
  
     URLSession.shared.downloadTask(with: file) {
        thread.async { someFunc() } //Doesn't compile
     }.resume()
  }
  </code></pre>