文档 表示:
SemaphoreSlim 类代表一种轻量级、快速的信号量,可用于在单个进程中等待,当等待时间预计非常短时。
什么是非常短的时间?有人知道明确的毫秒时间值吗?如果等待时间约为 5 分钟,是否可以使用 SemaphoreSlim
实例?
SemaphoreSlim
实例,如果等待时间约为5分钟?SemaphoreSlim
。而是相对于更重量级的替代方法Semaphore
更适用于这种情况。SemaphoreSlim
类相比,分配和管理Semaphore
类的开销可能在执行代码的整体性能中不重要。因此,在这种情况下,即使它在技术上不太有效率,您也可以轻松地使用Semaphore
。SemaphoreSlim
而不是Semaphore
。这并不经常发生,现在随着C#和.NET中更高级别的抽象,用于协调并发运行代码的可用性变得更少。即使使用信号量也变得越来越少见。Semaphore
实例可能会锁定线程的时间比所需时间更长,因此,如果预计等待时间非常短,则建议使用 SemaphoreSlim
? - Alexander