C sincronización # hilo presentación de clase SemaphoreSlim

clase SemaphoreSlim limita el número de hilos de acceder simultáneamente a un recurso

Código es el siguiente:

. 1    estática SemaphoreSlim SemaphoreSlim = nuevo nuevo SemaphoreSlim ( 4. );
 2  
. 3          estático  void AccessDatabase ( Cadena nombre, int segundos Los)
 4.          {
 5.              Console.WriteLine ($ " {nombre} de espera para el acceso a la base de datos " );
 . 6              semaphoreSlim.Wait ();
 . 7              Consola .WriteLine ($ " {} está autorizado a acceder el nombre de base de datos " );
 . 8              los Thread.Sleep (TimeSpan.FromSeconds segundos (la));
 . 9              Console.WriteLine ($ "{Nombre} ha terminado de acceder a la base de datos " );
 10              semaphoreSlim.Release ();
 . 11          }
 12 es  
13 es          estático  void la principal ( Cuerda [] args)
 14          {
 15              para ( int I = 1. ; I <= 6. ; I ++ )
 16              {
 . 17                  cadena threadName $ = " hilo} {I " ;
 18 es                  int SecondsToWait = 2 + 2 * I;
 . 19                  var t = new newHilo (() => AccessDatabase (threadName, secondsToWait));
20                  t.Start ();
21              }
 22              Console.ReadLine ();
23          }

El resultado:

 

Supongo que te gusta

Origin www.cnblogs.com/yangda/p/12587345.html
Recomendado
Clasificación