情報
要求されたトピックは次のとおりです。しかし、このトピックはこのライブラリには含まれていません。

SemaphoreSlim クラス

2013/12/12

リソースまたはリソースのプールに同時にアクセスできるスレッドの数を制限する Semaphore の軽量版です。

System.Object
  System.Threading.SemaphoreSlim

Namespace:  System.Threading
アセンブリ:  mscorlib (mscorlib.dll 内)

public class SemaphoreSlim : IDisposable

SemaphoreSlim 型で公開されるメンバーは以下のとおりです。

  名前説明
パブリック メソッドSemaphoreSlim(Int32)同時に許可される要求の初期数を指定して、SemaphoreSlim クラスの新しいインスタンスを初期化します。
パブリック メソッドSemaphoreSlim(Int32, Int32)同時に許可される要求の初期数および最大数を指定して、SemaphoreSlim クラスの新しいインスタンスを初期化します。
このページのトップへ

  名前説明
パブリック プロパティAvailableWaitHandleセマフォの待機に使用できる WaitHandle を返します。
パブリック プロパティCurrentCountSemaphoreSlim に入ることを許可されるスレッド数を取得します。
このページのトップへ

  名前説明
パブリック メソッドDispose()SemaphoreSlim クラスの現在のインスタンスによって使用されているすべてのリソースを解放します。
プロテクト メソッドDispose(Boolean)ManualResetEventSlim によって使用されているアンマネージ リソースを解放し、オプションでマネージ リソースも解放します。
パブリック メソッドEquals(Object)指定した Object が、現在の Object と等しいかどうかを判断します。 (Object から継承されます。)
プロテクト メソッドFinalizeObject がガベージ コレクションで再利用される前に、Object がリソースを解放して他のクリーンアップ操作を実行できるようにします。 (Object から継承されます。)
パブリック メソッドGetHashCode特定の型のハッシュ関数として機能します。 (Object から継承されます。)
パブリック メソッドGetType現在のインスタンスの Type を取得します。 (Object から継承されます。)
プロテクト メソッドMemberwiseClone現在の Object の簡易コピーを作成します。 (Object から継承されます。)
パブリック メソッドRelease()1 回だけ SemaphoreSlim を出ます。
パブリック メソッドRelease(Int32)指定された回数だけ、SemaphoreSlim から出ます。
パブリック メソッドToString現在のオブジェクトを表す文字列を返します。 (Object から継承されます。)
パブリック メソッドWait()SemaphoreSlim に入るまで、現在のスレッドをブロックします。
パブリック メソッドWait(CancellationToken)CancellationToken を観察すると同時に、SemaphoreSlim に入るまで、現在のスレッドをブロックします。
パブリック メソッドWait(Int32)タイムアウト値を 32 ビット符号付き整数で指定して、SemaphoreSlim に入るまで、現在のスレッドをブロックします。
パブリック メソッドWait(TimeSpan)TimeSpan を使用してタイムアウトを指定し、SemaphoreSlim に入るまで、現在のスレッドをブロックします。
パブリック メソッドWait(Int32, CancellationToken)CancellationToken を観察すると同時に、タイムアウト値を 32 ビット符号付き整数で指定して、SemaphoreSlim に入るまで、現在のスレッドをブロックします。
パブリック メソッドWait(TimeSpan, CancellationToken)CancellationToken を観察すると同時に、タイムアウトを指定する TimeSpan を使用して、SemaphoreSlim に入るまで、現在のスレッドをブロックします。
パブリック メソッドWaitAsync()SemaphoreSlim に入るまで非同期に待機します。
パブリック メソッドWaitAsync(CancellationToken)CancellationToken を観察すると同時に、非同期に SemaphoreSlim の入力を待機します。
パブリック メソッドWaitAsync(Int32)32 ビット符号付き整数を使用して時間間隔を計測し、非同期に SemaphoreSlim の入力を待機します。
パブリック メソッドWaitAsync(TimeSpan)TimeSpan を使用して時間間隔を計測し、非同期に SemaphoreSlim の入力を待機します。
パブリック メソッドWaitAsync(Int32, CancellationToken)CancellationToken を観察すると同時に、32 ビット符号付き整数を使用して時間間隔を計測し、非同期に SemaphoreSlim の入力を待機します。
パブリック メソッドWaitAsync(TimeSpan, CancellationToken)CancellationToken を観察すると同時に、TimeSpan を使用して時間間隔を計測し、非同期に SemaphoreSlim の入力を待機します。
このページのトップへ

SemaphoreSlim は、Windows カーネルのセマフォを使用しない、軽量セマフォ クラスを提供します。

SemaphoreSlim を使用する方法を次の例に示します。

Windows Phone OS

サポート: 8.0

SemaphoreSlim のすべてのパブリックおよびプロテクト メンバーはスレッド セーフであり、複数のスレッドから同時に使用できます。ただし、SemaphoreSlim に対する他のすべての操作が完了したときにのみ使用する必要がある Dispose は例外です。

表示: