共有リソースへのアクセスを同期する場合や、スレッド相互作用を調整する場合に使用できるさまざまな型が提供されます。インスタンスを使用します。インスタンスを使用して同じリソースを保護する場合は、同期プリミティブによって提供される保護を回避します。クラスから派生します。メカニズムを使用します。次のようなクラスが含まれます。include:System.Threading.Mutex。共有リソースへの排他アクセスが許可されます。所有しているスレッドがない場合、ミューテックスはシグナル状態になります。it.System.Threading.Semaphore。共有リソースまたはリソースのプールに同時にアクセスできるスレッドの数を制限します。場合は非シグナル状態に設定されます。zero.System.Threading.EventWaitHandle。スレッド同期イベントを表し、シグナル状態または非シグナル状態のいずれかになります。state.System.Threading.AutoResetEvent。派生し、シグナル状態の場合、単一の待ちスレッドを解放した後、自動的に非シグナル状態にリセットされます。thread.System.Threading.ManualResetEvent。メソッドが呼び出されるまでシグナル状態のままです。ドメインの境界を越えてスレッドのアクティビティを同期させることができます。これらの型のいくつかで名前付きのシステム同期ハンドルを表すことができます。システム全体で表示され、プロセス間同期で使用できます。リファレンスを参照してください。ハンドルに依存しておらず、通常はパフォーマンスが向上します。プロセス間同期には使用できません。つのアプリケーション内のスレッド同期で使用します。派生した型の代わりに使用できます。代わりに使用できます。複数のスレッドによる共有リソースへのアクセスを制御するためのさまざまな同期プリミティブが提供されます。クラスでは、リソースを識別するオブジェクトに対するロックを取得または解放することで、共有リソースへの排他アクセスを許可します。ロックが保持されている間、ロックを保持するスレッドではロックを再度取得し、解放することができます。メソッドではロックが解放されるまで待機します。メソッドでは解放されたロックを取得します。メソッドを使用して、スレッドでのロック取得の試行時間を指定することもできます。メソッドを呼び出してロックを解放する必要があります。メソッドを使用して、同じオブジェクトに対するロックを取得するスレッドの相互作用を調整することができます。リファレンスを参照してください。クラスを直接使用せずに、共有リソースへのアクセスを同期します。メソッドを使用して実装されます。ブロックが使用されます。同様に、共有リソースへの排他アクセスを許可します。メソッドのオーバーロードのいずれかを使用して、ミューテックスの所有権を要求します。メソッドを呼び出してそれを解放する必要があります。クラスをプロセス間同期に使用することができます。システム全体で表示される、名前付きミューテックスを使用します。コンストラクターを使用します。ミューテックスを開くこともできます。リファレンスを参照してください。同様に、ロックの可用性に基づいて、共有リソースへの排他アクセスを許可します。使用できないロックの取得が試行された場合、ループ内で待機し、ロックが使用できるようになるまで繰り返し確認されます。リファレンスを参照してください。クラスでは、書き込み用の共有リソースへの排他アクセスを許可し、複数のスレッドでの読み取り用のリソースへの同時アクセスを許可します。排他アクセスを要求すると、後続のリーダーとライターの要求は、既存のすべてのリーダーがロックを終了し、ライターがロックに参加して終了するまでブロックされます。リファレンスを参照してください。クラスでは、共有リソースまたはリソースのプールに同時にアクセスできるスレッドの数を制限します。リソースを要求する追加のスレッドは、任意のスレッドでセマフォが解放されるまで待機します。アフィニティがないため、あるスレッドでセマフォを取得し、別のスレッドで解放することができます。代わりに使用され、単一のプロセス境界内の同期化でのみ使用できます。インスタンスを作成します。セマフォはサポートされていません。リファレンスを参照してください。待機する必要があることを意味します。完了するまでブロックされます。前のセクションで説明されている同期プリミティブでは、シグナリングに関する別のメカニズムが提供されます。その場合、あるスレッドによって、ロックを獲得することで先に進むことができる別のスレッドに通知されます。よって提供される追加のシグナリング構造について説明します。クラスはスレッドの同期イベントを表します。event.同期イベントには、非シグナル状態またはシグナル状態のいずれかを指定できます。オーバーロードを呼び出すスレッドは、イベントがシグナル状態になるまでブロックされます。メソッドでは、イベントの状態をシグナル状態に設定します。モードによって異なります。単一の待ちスレッドが解放された後、自動的にリセットされます。つのスレッドのみが通れる回転ドアのようなものです。クラスはその動作を表します。メソッドが呼び出されるまで、シグナル状態のままです。これは、シグナル状態になるまで閉じられ、誰かが閉めるまで開いたままになっている門のようなものです。クラスはその動作を表します。代わりに使用できます。インスタンスを作成します。method.詳細については、「EventWaitHandle」の記事を参照してください。関する記述を参照してください。なると設定されるようになるイベントを表します。呼び出すスレッドがブロックされます。以上のスレッドのブロックを解除できます。リファレンスを参照してください。クラスはスレッド実行のバリアを表します。メソッドを呼び出すスレッドでは、バリアに到達したことを知らせ、他の参加スレッドがバリアに到達するまで待機します。すべての参加スレッドは、バリアに到達したときに先に進み、バリアはリセットされて再度使用することができます。リファレンスを参照してください。クラスでは、変数に対してシンプルなアトミック操作を実行する静的メソッドが提供されます。ビット整数値を対象とした追加、インクリメントとデクリメント、交換、比較による条件付き交換、読み取りの各操作があります。リファレンスを参照してください。構造体では、スピンベースの待機のサポートが提供されます。これは、イベントが通知されるか条件が満たされるのをスレッドが待機する必要があるが、待機ハンドルを使用するかあるいはスレッドをブロックする際に必要な待機時間よりも実際の待機時間が短いと思われる場合に使用できます。譲渡するための短い時間を指定できます。リファレンスを参照してください。featuresお勧めのコンテンツこのページはお役に立ちましたか?はいいいえ追加のフィードバックはありますか?スキップ送信ありがとうございます。直接フィードバックを残すこともできます。直接フィードバックを残すこともできます。Cookie利用条件サイトのフィードバック商標このページはお役に立ちましたか?はいいいえ追加のフィードバックはありますか?スキップ送信ありがとうございます。Cookie利用条件サイトのフィードバック。