Default SynchronizationContext vs Default TaskScheduler
问题 This is going to be a bit long, so please bear with me. I was thinking that the behavior of the default task scheduler ( ThreadPoolTaskScheduler ) is very similar to that of the default " ThreadPool " SynchronizationContext (the latter can be referenced implicitly via await or explicitly via TaskScheduler.FromCurrentSynchronizationContext() ). They both schedule tasks to be executed on a random ThreadPool thread. In fact, SynchronizationContext.Post merely calls ThreadPool.QueueUserWorkItem .