它们的公共(public)接口(interface)看起来相似。 documentation指出SemaphoreSlim是一种轻量级替代方案,并且不使用Windows Kernel信号灯。 This resource表示SemaphoreSlim更快。在什么情况下,SemaphoreSlim比Semaphore更有意义,反之亦然?
最佳答案
一个区别是SemaphoreSlim
不允许命名信号量,该信号量可以在系统范围内使用。这意味着SemaphoreSlim不能用于跨进程同步。
The MSDN documentation还指示在“等待时间预计非常短”时应使用SemSlim。通常,在大多数折衷方案中, slim 版本的重量更轻,这通常可以很好地与之吻合。
关于c# - 我如何在Semaphore和SemaphoreSlim之间进行选择?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4154480/