lock ステートメントは、指定のオブジェクトに対する相互排他ロックを取得し、ステートメント ブロックを実行してからロックを解放します。 ロックが保持されている間、ロックを保持するスレッドではロックを再度取得し、解放することができます。 他のスレッドはブロックされてロックを取得できず、ロックが解放されるまで待機します。 lock ステートメントにより常に、最大で 1 つだけのスレッドでその本文が実行されます。 lock ステートメントの形式は次のとおりです。 lock (x) { // Your code... } 変数 x は、System.Threading.Lock 型の式、または参照型です。 コンパイル時に x が System.Threading.Lock 型であることがわかっている場合は、次とまったく同じになります。 using (x.EnterScope()) { // Yo