ホームページ > バックエンド開発 > C#.Net チュートリアル > C# の Monitor と Lock の違いは何ですか?

C# の Monitor と Lock の違いは何ですか?

王林
リリース: 2023-09-08 21:13:07
転載
828 人が閲覧しました

C# の Monitor と Lock の違いは何ですか?

モニターとロックはどちらも、オブジェクト アクセスを同期するためのメカニズムを提供します。 lock は Monitor.Enter と try のショートカットです。

ロックはショートカットであり、基本的な使用方法のオプションです。さらに制御が必要な場合は、TryEnter()、Wait()、Pulse()、および高度なマルチスレッド ソリューション用の & を使用してください。 PulseAll() メソッドの場合は、Montior クラスを選択します。

ロックの例 -

Example

1

2

3

4

5

6

7

8

9

10

11

12

13

14

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

      }

   }

}

ログイン後にコピー

モニターの例

Example

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

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

         }

      }

   }

}

ログイン後にコピー

以上がC# の Monitor と Lock の違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート