title: What is Task.RunSynchronously for?
body: <p>I just wonder what's the method for? In what kind of scenario I can use this method. </p>
  
  <p>My initial thought is <code>RunSynchronously</code> is for calling an async method and running that synchronously without causing a deadlock issue like what <code>.wait()</code> does.</p>
  
  <p>However, according to <a href="https://docs.microsoft.com/en-us/dotnet/api/system.threading.tasks.task.runsynchronously" rel="noreferrer">MSDN</a>, </p>
  
  <blockquote>
    <p>Ordinarily, tasks are executed asynchronously on a thread pool thread and do not block the calling thread. Tasks executed by calling the RunSynchronously() method are associated with the current TaskScheduler and are run on the calling thread. If the target scheduler does not support running this task on the calling thread, the task will be scheduled for execution on the schedule, and the calling thread will block until the task has completed execution</p>
  </blockquote>
  
  <p>Why need a TaskScheduler here, if the task going to run on the calling thread? </p>