ManualResetEventSlim建议等待时间

Lev*_*lho 22 c# multithreading manualresetevent

ManualResetEventSlim状态的MSDN文档

ManualResetEvent与预期等待时间非常短的情况相比,您可以使用此类获得更好的性能.

"很短"多久了?在什么时候使用内核对象的好处ManualResetEvent超过了实例化它的开销?

TyC*_*obb 11

这是我发现并希望其他人验证这一点,但这是我在阅读ManualResetEventSlim参考源时发现的

ManualResetEventSlim
它试图根据处理器的数量进行休眠和产生,并进行极短暂的睡眠 - 1ms或0ms,具体取决于其当前的旋转索引.如果它还没有足够的时间,它将恢复使用Monitor.Wait最初传入的超时的新更新版本.

为Thread.Sleep传入0可以减少其时间片.

ManualResetEvent
它使用WaitHandle并调用本机方法来处理等待指定的时间.不幸的是,我无法看到它在做什么.

我的结论
"非常短"意味着只有几毫秒.

编辑:我刚刚发现这些有很多信息: