title: How do DownloadStringTaskAsync and DownloadStringAsync manage to not block the UI thread?
body: <p>As far as I know, they both do not have the &quot;async&quot; keyword. Do they both create a new thread when downloading? I've heard people say that they do not use a new thread. Then how does it do it?</p>
  <p>The normal DownloadString method does indeed block the UI thread, but how do the other 2 methods manage to do it without using the &quot;await&quot; keyword to return from the method and wait until the operation is completed</p>