在 C# 里面配合 dotnet 的 Task 可以作出 AsyncAutoResetEvent 高性能多线程工具,从命名可以看到 AsyncAutoResetEvent 的意思就是支持异步的自动线程等待事件,用于多线程竞争访问执行权,可以用在消费队列或用在限制有限线程执行的业务上
和框架自带的 AutoResetEvent 类 一样的作用,表示线程同步事件在一个等待线程释放后收到信号时自动重置
和框架的不同在于 AsyncAutoResetEvent 使用的是异步等待方法,不会在线程池里面阻塞线程,可以让步线程,让线程去处理其他业务
详细请看
C# dotnet 高性能多线程工具 AsyncAutoResetEvent 异步等待使用方法和原理