Maison >développement back-end >Tutoriel C#.Net >Quelle est la différence entre Monitor et Lock en C# ?

Quelle est la différence entre Monitor et Lock en C# ?

王林
王林avant
2023-09-08 21:13:07764parcourir

Quelle est la différence entre Monitor et Lock en C# ?

Les moniteurs et les verrous fournissent des mécanismes de synchronisation de l'accès aux objets. lock est un raccourci pour Monitor.Enter et essayez enfin.

Lock est un raccourci et une option pour une utilisation de base. Si nous avons besoin de plus de contrôle, utilisez TryEnter(), Wait(), Pulse() et & pour des solutions multithread avancées PulseAll(), alors la classe Montior est votre choix.

Exemple de verrouillage -

Exemple

class Program{
static object _lock = new object();
static int Total;
public static void Main(){
   AddOneHundredLock();
   Console.ReadLine();
}
public static void AddOneHundredLock(){
   for (int i = 1; i <= 100; i++){
      lock (_lock){
         Total++;
      }
   }
}

Exemple de moniteur

Exemple

class Program{
   static object _lock = new object();
   static int Total;
   public static void Main(){
      AddOneHundredMonitor();
      Console.ReadLine();
   }
   public static void AddOneHundredMonitor(){
      for (int i = 1; i <= 100; i++){
         Monitor.Enter(_lock);
         try{
            Total++;
         }
         finally{
            Monitor.Exit(_lock);
         }
      }
   }
}

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer