Leurs interfaces publiques semblent similaires. La documentation indique que SemaphoreSlim est une alternative légère et n’utilise pas les sémaphores du noyau Windows. Cette ressource indique que SemaphoreSlim est beaucoup plus rapide. Dans quelles situations le SemaphoreSlim a-t-il plus de sens par rapport au sémaphore et vice versa?
Réponses
Trop de publicités?Une différence est que le SemaphoreSlim
ne permet pas nommé les sémaphores, qui peut être à l'échelle du système. Cela signifie qu'un SemaphoreSlim ne pouvait pas être utilisé pour la synchronisation inter-processus.
La documentation MSDN indique également que SemSlim doit être utilisée lorsque "le temps d'attente devrait être très court". Généralement queue d'aronde bien avec l'idée que la version slim est plus léger pour la plupart des arbitrages.
La documentation MSDN décrit la différence.
En une phrase:
- La classe SemaphoreSlim représente un sémaphore léger et rapide qui peut être utilisé pour attendre au sein d'un processus unique lorsque les temps d'attente sont censés être très courts.