首页 > TAG信息列表 > ManualResetEventSlim
【C# 线程】.NET 中的轻量级线程安全
对线程安全有要求的代码中,通常会使用锁(lock)。自 .NET 诞生以来就有锁,然而从 .NET Framework 4.0 开始,又诞生了 6 个轻量级的线程安全方案:SpinLock, SpinWait, CountdownEvent, SemaphoreSlim, ManualResetEventSlim, Barrier。 如何轻量 这些轻量级线程同步方案因为没有使用到 Winc# ManualResetEventSlim
前言 后续会把异步编程的ManualResetEventSlim 深入写完,先简单介绍一下吧。 ManualResetEventSlim 有set 方法和 reset 、wait、dispose方法。 ManualResetEventSlim wait 方法 阻止当前线程,直到设置了当前 ManualResetEventSlim 为止。 看上图,一个ManualResetEventSlim 可以去ManualResetEventSlim(手动重置事件)-【玩迪士尼的游乐项目很无奈,一波波等(管理人员手动开关门,大家在门口排队一波波进入)】
ManualResetEventSlim的整个工作方法有点像人群通过大门,AutoResetEvent事件像一个旋转门,一次只允许一人通过。ManualResetEventSlim是ManualResetEvent的混合版本,一直保持大门敞开直到手动调用Reset方法。当调用_mainEvent.Set时,相当于打开了大门从而允许准备好的线程接收信号