Мне интересно, какая фактическая разница между вызовом Thread.Sleep(1) и вызовом SwitchToThread (если мы игнорируем, что он в настоящее время не отображается BCL).
Джо Даффи упоминает в свой пост, который:
"API-интерфейс kernel32! SwitchToThread не обнаруживает проблем, с которыми работают Sleep (0) и Sleep (1)." (относительно поведения планировщика)
Почему спать не будет так же, как SwitchToThread? Почему эта дифференциация существует и для чего она хороша? (если вообще..)