Ответ 1
Это то, что я нашел и хотел бы, чтобы кто-то еще подтвердил это, но это то, что я нашел при чтении Reference Source для ManualResetEventSlim
ManualResetEventSlim
Он пытается просто спать и уступать по количеству процессоров и делать крайне короткие спячки - 1 мс или 0 мс в зависимости от его текущего индекса спина. Если до сих пор не хватило времени, оно вернется к использованию Monitor.Wait
с использованием новой обновленной версии таймаута, которая была первоначально передана.
Передача в 0 для Thread.Sleep уменьшает время.
ManualResetEvent
Он использует WaitHandle
и вызывает собственные методы для обработки ожидающего указанного времени. К сожалению, я не вижу, что он делает.
Мой вывод
" Очень короткий" означает всего несколько миллисекунд.
EDIT: Я только что нашел те, у которых много информации: