Computer >> Máy Tính >  >> Lập trình >> C#

Sự khác biệt giữa Màn hình và Khóa trong C # là gì?

Cả Màn hình và khóa đều cung cấp cơ chế đồng bộ hóa quyền truy cập vào các đối tượng. Khóa là phím tắt cho Monitor.Enter với thử và cuối cùng.

Khóa là một phím tắt và là tùy chọn cho cách sử dụng cơ bản. Nếu chúng ta cần nhiều quyền kiểm soát hơn để triển khai các giải pháp đa luồng nâng cao bằng các phương thức TryEnter () Wait (), Pulse (), &PulseAll () thì lớp Montior là lựa chọn của bạn.

Ví dụ cho Khóa -

Ví dụ

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++;
      }
   }
}

Ví dụ cho Màn hình -

Ví dụ

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);
         }
      }
   }
}