有关ManualResetEventSlim
状态的MSDN文档
“很短”要多长时间?在什么时候使用带有ManualResetEvent
的内核对象的好处会超过实例化它的开销?
最佳答案
这是我发现的,并且希望其他人对此进行验证,但这是我在阅读Reference Source for ManualResetEventSlim时发现的结果
ManualResetEventSlim
它试图根据处理器的数量来 sleep 并屈服,并进行极短的 sleep -1ms或0ms,具体取决于其当前的旋转指数。如果仍然没有足够的时间,它将使用原始传入的超时的新更新版本恢复为Monitor.Wait
。
为Thread.Sleep传递0可以减轻它的时间片。
ManualResetEvent
它使用WaitHandle
并调用 native 方法来处理等待指定的时间。不幸的是,我看不到它在做什么。
我的结论
“非常短”表示仅几毫秒。
编辑:我刚刚发现了其中有很多信息:
关于c# - ManualResetEventSlim建议的等待时间,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24310551/