141 votes

Comment choisir entre Semaphore et SemaphoreSlim?

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?

89voto

Andrew Barber Points 25990

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.

22voto

Joe Points 60749

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.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X