次の方法で共有


AsyncCrossProcessMutex クラス

定義

非同期に入力できるミューテックス。

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)

ミューテックスを非同期的に取得し、例外をスローせずにタイムアウトできるようにします。

適用対象