MOnitorとは? わかりやすく解説

Monitor クラス

オブジェクトへのアクセス同期する機構提供します

名前空間: System.Threading
アセンブリ: mscorlib (mscorlib.dll 内)
構文構文

<ComVisibleAttribute(True)> _
Public NotInheritable Class
 Monitor
[ComVisibleAttribute(true)] 
public static class Monitor
[ComVisibleAttribute(true)] 
public ref class Monitor abstract sealed
/** @attribute ComVisibleAttribute(true) */ 
public final class Monitor
ComVisibleAttribute(true) 
public final class Monitor
解説解説
メモメモ

このクラス適用される HostProtectionAttribute 属性Resources プロパティの値は、Synchronization または ExternalThreading です。HostProtectionAttribute は、デスクトップ アプリケーション (一般的にはアイコンダブルクリックコマンド入力、またはブラウザURL入力して起動するアプリケーション) には影響しません。詳細については、HostProtectionAttribute クラストピックまたは「SQL Server プログラミングホスト保護属性」を参照してください

Monitor クラスは、オブジェクトロックシングル スレッド付与してオブジェクトへのアクセス制御しますオブジェクトロックすると、通常クリティカル セクション呼ばれるコード ブロックへのアクセス制限できます。あるスレッドオブジェクトロック所有している間、他のスレッドはそのロック取得できません。Monitor使用してロック所有者実行しているアプリケーション コードセクションに、他のスレッドアクセスできないようにすることもできます。ただし、これは、他のスレッドロックされ別のオブジェクト使用してコード実行してない場合限ります

Monitor には次の機能あります

同期するオブジェクトごとに次の情報保持されます。

同期するオブジェクトアクセスするスレッド実行できるアクションについて、次の表で説明します

アクション

説明

Enter, TryEnter

オブジェクトロック取得します。このアクションは、クリティカル セクション先頭マークします。他のスレッドは、ロックされ別のオブジェクト使用してクリティカル セクション命令実行している場合除きクリティカル セクションに入ることはできません。

Wait

オブジェクトロック解放して、他のスレッドオブジェクトロックしたオブジェクトアクセスできるようにします。呼び出し元のスレッドは、他のスレッドオブジェクトアクセスしている間待機します。パルス シグナル使用してオブジェクトの状態が変更されたことを待機中のスレッド通知します

Pulse (シグナル)、 PulseAll

1 つ上の待機中のスレッドシグナル送ります。このシグナルが、ロックされオブジェクトの状態が変更されたことを待機中のスレッド通知すると、ロック所有者ロック解放する準備をします。待機中のスレッドオブジェクト実行待ちキュー入り最終的にオブジェクトロック受け取ることができますロック取得したスレッドは、必要な状態に達しているかどうか確認するためにオブジェクト新しい状態をチェックできます

Exit

オブジェクトロック解放します。このアクションは、ロックされオブジェクトによってプロテクトされるクリティカル セクション末尾マークします。

Enter メソッドExit メソッド使用してクリティカル セクション先頭末尾マークします。クリティカル セクション連続する命令セットである場合は、Enter メソッド取得したロックにより、ロックされオブジェクト囲まれコード1 つシングル スレッドだけが実行できるようになります。この場合は、try ブロックにこれらの命令置いてExit 命令finally ブロックに置くことをお勧めます。この機能は、通常クラス静的メソッドまたはインスタンス メソッドへのアクセス同期するために使用されます。インスタンス メソッド同期されたスレッド アクセス必要な場合は、現在のインスタンスロックするオブジェクトとして使用してEnter メソッドと、対応する Exit メソッド呼び出します。1 つスレッドだけが現在のインスタンスロック保持できるため、このメソッド実行できるのは、一度1 つスレッドだけです。静的メソッドは、現在のインスタンスTypeロックされオブジェクトとして使用するのと同じ方法プロテクトされますEnter および Exit メソッドによって提供される機能は、C# lock ステートメント (Visual Basic の場合SyncLock) によって提供される機能似てます。唯一の相違点は、lock および SyncLockモニタ確実に解放するために、Exit メソッドtry...finally ブロック (Visual Basic の場合Try...Finally) 内にラップすることです。

クリティカル セクション範囲メソッド全体にわたる場合、前のロック機能は System.Runtime.CompilerServices.MethodImplAttribute をメソッド配置しMethodImplAttributeコンストラクタSynchronized 値を指定して実行できます。この属性使用する場合は、Enter ステートメントExit ステートメント不要です。この属性によって、現在のスレッドメソッドから制御が戻るまでロック保持しますロックがすぐに解放できる場合は、この属性ではなくMonitor クラスまたは C# lock ステートメント使用します

特定のオブジェクトロックおよび解放する Enter ステートメントExit ステートメントは、メンバ境界またはクラス境界、またはその両方超えることはできますが、この方法はお勧めできません。

同期対象オブジェクト選択する場合は、プライベート オブジェクトまたは内部オブジェクトだけをロックする必要があります外部オブジェクトロックすると、デッドロック発生します。これは関連のないコード別の目的のために同じオブジェクトロック選択するためです。

継承階層継承階層
System.Object
  System.Threading.Monitor
スレッド セーフスレッド セーフ

この型は、マルチスレッド操作に対して安全です。

プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照

Monitor メソッド


パブリック メソッドパブリック メソッド

  名前 説明
パブリック メソッド Enter 指定したオブジェクト排他ロック取得します
パブリック メソッド Equals  オーバーロードされます2 つObject インスタンス等しかどうか判断します。 ( Object から継承されます。)
パブリック メソッド Exit 指定したオブジェクト排他ロック解放します。
パブリック メソッド GetHashCode  特定の型のハッシュ関数として機能します。GetHashCode は、ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用適してます。 ( Object から継承されます。)
パブリック メソッド GetType  現在のインスタンスType取得します。 ( Object から継承されます。)
パブリック メソッド Pulse ロックされオブジェクトの状態が変更されたことを、待機キュー内のスレッド通知します
パブリック メソッド PulseAll オブジェクトの状態が変更されたことを、待機中のすべてのスレッド通知します
パブリック メソッド ReferenceEquals  指定した複数Object インスタンス同一かどうか判断します。 ( Object から継承されます。)
パブリック メソッド ToString  現在の Object を表す String返します。 ( Object から継承されます。)
パブリック メソッド TryEnter オーバーロードされます指定したオブジェクト排他ロック取得試みます
パブリック メソッド Wait オーバーロードされますオブジェクトロック解放し現在のスレッドロックを再取得するまでそのスレッドブロックします
参照参照

関連項目

Monitor クラス
System.Threading 名前空間
Thread

その他の技術情報

マネージ スレッド処理
Monitor

Monitor メンバ

オブジェクトへのアクセス同期する機構提供します

Monitor データ型公開されるメンバを以下の表に示します


パブリック メソッドパブリック メソッド
  名前 説明
パブリック メソッド Enter 指定したオブジェクト排他ロック取得します
パブリック メソッド Equals  オーバーロードされます2 つObject インスタンス等しかどうか判断します。 (Object から継承されます。)
パブリック メソッド Exit 指定したオブジェクト排他ロック解放します。
パブリック メソッド GetHashCode  特定の型のハッシュ関数として機能します。GetHashCode は、ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用適してます。 (Object から継承されます。)
パブリック メソッド GetType  現在のインスタンスType取得します。 (Object から継承されます。)
パブリック メソッド Pulse ロックされオブジェクトの状態が変更されたことを、待機キュー内のスレッド通知します
パブリック メソッド PulseAll オブジェクトの状態が変更されたことを、待機中のすべてのスレッド通知します
パブリック メソッド ReferenceEquals  指定した複数Object インスタンス同一かどうか判断します。 (Object から継承されます。)
パブリック メソッド ToString  現在の Object を表す String返します。 (Object から継承されます。)
パブリック メソッド TryEnter オーバーロードされます指定したオブジェクト排他ロック取得試みます
パブリック メソッド Wait オーバーロードされますオブジェクトロック解放し現在のスレッドロックを再取得するまでそのスレッドブロックします
参照参照

関連項目

Monitor クラス
System.Threading 名前空間
Thread

その他の技術情報

マネージ スレッド処理
Monitor


このページでは「.NET Framework クラス ライブラリ リファレンス」からMOnitorを検索した結果を表示しています。
Weblioに収録されているすべての辞書からMOnitorを検索する場合は、下記のリンクをクリックしてください。
 全ての辞書からMOnitor を検索

英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「MOnitor」の関連用語

1
rear monitor デジタル大辞泉
100% |||||

2
ダッシュ‐モニター デジタル大辞泉
100% |||||

3
モニターTV デジタル大辞泉
100% |||||

4
アイ‐イー‐エム デジタル大辞泉
98% |||||




8
ブイ‐エム‐エム デジタル大辞泉
76% |||||

9
マキシ デジタル大辞泉
76% |||||

10
仮想マシンモニター デジタル大辞泉
76% |||||

MOnitorのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



MOnitorのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2025 Microsoft.All rights reserved.

©2025 GRAS Group, Inc.RSS