AsyncCrossProcessMutex クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
非同期に入力できるミューテックス。
public class AsyncCrossProcessMutex : IDisposable
type AsyncCrossProcessMutex = class
interface IDisposable
Public Class AsyncCrossProcessMutex
Implements IDisposable
- 継承
-
AsyncCrossProcessMutex
- 実装
例
using AsyncCrossProcessMutex mutex = new("Some-Unique Name");using (await mutex.EnterAsync()) { // 同じ名前付きミューテックスによって保護されている他のスレッドまたはプロセスと並行して実行してはならないコード。 }
注釈
このクラスは、OS ミューテックス同期プリミティブを利用します。これは基本的にスレッドアフィニティが設定されており、ミューテックスを所有するスレッドを同期的にブロックする必要があります。 これにより、ネイティブ ミューテックスは非同期メソッドでの使用に適していません。ミューテックスに入るスレッドが、ミューテックスを終了するスレッドと同じでない可能性があります。 このクラスは、プライベート専用スレッドを使用してミューテックスを入力および解放することでその問題を解決しますが、それ以外の場合は、所有者が非同期コードを実行したり、スレッドを切り替えることができます。
コンストラクター
| 名前 | 説明 |
|---|---|
| AsyncCrossProcessMutex(String) |
AsyncCrossProcessMutex クラスの新しいインスタンスを初期化します。 |
プロパティ
| 名前 | 説明 |
|---|---|
| Name |
ミューテックスの名前を取得します。 |
メソッド
| 名前 | 説明 |
|---|---|
| Dispose() |
基になるネイティブ オブジェクトを破棄します。 |
| EnterAsync() |
ミューテックスを非同期的に取得します。 |
| EnterAsync(TimeSpan) |
ミューテックスを非同期的に取得します。 |
| TryEnterAsync(TimeSpan) |
ミューテックスを非同期的に取得し、例外をスローせずにタイムアウトできるようにします。 |