SemaphoreSlim.Wait メソッド

定義

SemaphoreSlim に入るまで、現在のスレッドをブロックします。Blocks the current thread until it can enter the SemaphoreSlim.

オーバーロード

Wait(TimeSpan, CancellationToken)

SemaphoreSlim を観察すると同時に、タイムアウトを指定する TimeSpan を使用して、CancellationToken に入るまで、現在のスレッドをブロックします。Blocks the current thread until it can enter the SemaphoreSlim, using a TimeSpan that specifies the timeout, while observing a CancellationToken.

Wait(Int32, CancellationToken)

SemaphoreSlim を観察すると同時に、タイムアウト値を 32 ビット符号付き整数で指定して、CancellationToken に入るまで、現在のスレッドをブロックします。Blocks the current thread until it can enter the SemaphoreSlim, using a 32-bit signed integer that specifies the timeout, while observing a CancellationToken.

Wait(TimeSpan)

SemaphoreSlim を使用してタイムアウトを指定し、TimeSpan に入るまで、現在のスレッドをブロックします。Blocks the current thread until it can enter the SemaphoreSlim, using a TimeSpan to specify the timeout.

Wait(Int32)

タイムアウト値を 32 ビット符号付き整数で指定して、SemaphoreSlim に入るまで、現在のスレッドをブロックします。Blocks the current thread until it can enter the SemaphoreSlim, using a 32-bit signed integer that specifies the timeout.

Wait()

SemaphoreSlim に入るまで、現在のスレッドをブロックします。Blocks the current thread until it can enter the SemaphoreSlim.

Wait(CancellationToken)

SemaphoreSlim を観察すると同時に、CancellationToken に入るまで、現在のスレッドをブロックします。Blocks the current thread until it can enter the SemaphoreSlim, while observing a CancellationToken.

Wait(TimeSpan, CancellationToken)

SemaphoreSlim を観察すると同時に、タイムアウトを指定する TimeSpan を使用して、CancellationToken に入るまで、現在のスレッドをブロックします。Blocks the current thread until it can enter the SemaphoreSlim, using a TimeSpan that specifies the timeout, while observing a CancellationToken.

public:
 bool Wait(TimeSpan timeout, System::Threading::CancellationToken cancellationToken);
public bool Wait (TimeSpan timeout, System.Threading.CancellationToken cancellationToken);
member this.Wait : TimeSpan * System.Threading.CancellationToken -> bool

パラメーター

timeout
TimeSpan

TimeSpan は、待機するミリ秒数を表します。TimeSpan が -1 ミリ秒の場合は、無期限に待機します。TimeSpan が 0 ミリ秒の場合は、待機ハンドルをテストしてすぐに返します。A TimeSpan that represents the number of milliseconds to wait, a TimeSpan that represents -1 milliseconds to wait indefinitely, or a TimeSpan that represents 0 milliseconds to test the wait handle and return immediately.

cancellationToken
CancellationToken

観察する CancellationTokenThe CancellationToken to observe.

戻り値

現在のスレッドが SemaphoreSlim に正常に入った場合は true。それ以外の場合は falsetrue if the current thread successfully entered the SemaphoreSlim; otherwise, false.

例外

cancellationToken が取り消されました。cancellationToken was canceled.

timeout が -1 (無制限のタイムアウト) 以外の負数です。または、タイムアウトが MaxValue を超えています。timeout is a negative number other than -1, which represents an infinite timeout -or- timeout is greater than MaxValue.

semaphoreSlim インスタンスが破棄されました。.-or-The semaphoreSlim instance has been disposed .-or-

cancellationToken を作成した CancellationTokenSource は既に破棄されています。The CancellationTokenSource that created cancellationToken has already been disposed.

注釈

タイムアウトが-1 ミリ秒に設定されている場合、メソッドは無期限に待機します。If the timeout is set to -1 milliseconds, the method waits indefinitely.

タイムアウトが0ミリ秒に設定されている場合、メソッドはブロックしません。If the timeout is set to zero milliseconds, the method doesn't block. 待機ハンドルの状態をテストし、すぐに制御を戻します。It tests the state of the wait handle and returns immediately.

スレッドまたはタスクがセマフォに入ることができる場合は、 CurrentCountプロパティを1つデクリメントします。If a thread or task is able to enter the semaphore, it decrements the CurrentCount property by one.

cancellationToken取り消された場合、またはを呼び出しWait(TimeSpan, CancellationToken)たときにスレッドまたはタスクがブロックさmillisecondsTimeoutれ、で指定されたタイムアウト時間が経過した場合は、次のようになります。If cancellationToken is cancelled, or if a thread or task is blocked when calling Wait(TimeSpan, CancellationToken) and the timeout interval specified by millisecondsTimeout expires:

  • スレッドまたはタスクがセマフォに入ることはありません。The thread or task doesn't enter the semaphore.
  • プロパティCurrentCountはデクリメントされません。The CurrentCount property isn't decremented.

cancellationToken取り消された場合、メソッドはOperationCanceledException例外をスローします。If cancellationToken is cancelled, the method throws an OperationCanceledException exception.

こちらもご覧ください

Wait(Int32, CancellationToken)

SemaphoreSlim を観察すると同時に、タイムアウト値を 32 ビット符号付き整数で指定して、CancellationToken に入るまで、現在のスレッドをブロックします。Blocks the current thread until it can enter the SemaphoreSlim, using a 32-bit signed integer that specifies the timeout, while observing a CancellationToken.

public:
 bool Wait(int millisecondsTimeout, System::Threading::CancellationToken cancellationToken);
public bool Wait (int millisecondsTimeout, System.Threading.CancellationToken cancellationToken);
member this.Wait : int * System.Threading.CancellationToken -> bool

パラメーター

millisecondsTimeout
Int32

待機するミリ秒数です。Infinite (-1) の場合は無期限に待機します。または、ゼロの場合は待機ハンドルの状態をテストしてすぐに返します。The number of milliseconds to wait, Infinite(-1) to wait indefinitely, or zero to test the state of the wait handle and return immediately.

cancellationToken
CancellationToken

観察する CancellationTokenThe CancellationToken to observe.

戻り値

現在のスレッドが SemaphoreSlim に正常に入った場合は true。それ以外の場合は falsetrue if the current thread successfully entered the SemaphoreSlim; otherwise, false.

例外

cancellationToken が取り消されました。cancellationToken was canceled.

millisecondsTimeout が -1 (無制限のタイムアウト) 以外の負数です。または、タイムアウトが MaxValue を超えています。millisecondsTimeout is a negative number other than -1, which represents an infinite timeout -or- timeout is greater than MaxValue.

SemaphoreSlim インスタンスが破棄されたか、cancellationToken を作成した CancellationTokenSource が破棄されました。The SemaphoreSlim instance has been disposed, or the CancellationTokenSource that created cancellationToken has been disposed.

注釈

タイムアウトが-1 ミリ秒に設定されている場合、メソッドは無期限に待機します。If the timeout is set to -1 milliseconds, the method waits indefinitely.

タイムアウトが0ミリ秒に設定されている場合、メソッドはブロックしません。If the timeout is set to zero milliseconds, the method doesn't block. 待機ハンドルの状態をテストし、すぐに制御を戻します。It tests the state of the wait handle and returns immediately.

スレッドまたはタスクがセマフォに入ることができる場合は、 CurrentCountプロパティを1つデクリメントします。If a thread or task is able to enter the semaphore, it decrements the CurrentCount property by one.

cancellationToken取り消された場合、またはを呼び出しWait(Int32, CancellationToken)たときにスレッドまたはタスクがブロックさmillisecondsTimeoutれ、で指定されたタイムアウト時間が経過した場合は、次のようになります。If cancellationToken is cancelled, or if a thread or task is blocked when calling Wait(Int32, CancellationToken) and the timeout interval specified by millisecondsTimeout expires:

  • スレッドまたはタスクがセマフォに入ることはありません。The thread or task doesn't enter the semaphore.
  • プロパティCurrentCountはデクリメントされません。The CurrentCount property isn't decremented.

cancellationToken取り消された場合、メソッドはOperationCanceledException例外をスローします。If cancellationToken is cancelled, the method throws an OperationCanceledException exception.

こちらもご覧ください

Wait(TimeSpan)

SemaphoreSlim を使用してタイムアウトを指定し、TimeSpan に入るまで、現在のスレッドをブロックします。Blocks the current thread until it can enter the SemaphoreSlim, using a TimeSpan to specify the timeout.

public:
 bool Wait(TimeSpan timeout);
public bool Wait (TimeSpan timeout);
member this.Wait : TimeSpan -> bool
Public Function Wait (timeout As TimeSpan) As Boolean

パラメーター

timeout
TimeSpan

TimeSpan は、待機するミリ秒数を表します。TimeSpan が -1 ミリ秒の場合は、無期限に待機します。TimeSpan が 0 ミリ秒の場合は、待機ハンドルをテストしてすぐに返します。A TimeSpan that represents the number of milliseconds to wait, a TimeSpan that represents -1 milliseconds to wait indefinitely, or a TimeSpan that represents 0 milliseconds to test the wait handle and return immediately.

戻り値

現在のスレッドが SemaphoreSlim に正常に入った場合は true。それ以外の場合は falsetrue if the current thread successfully entered the SemaphoreSlim; otherwise, false.

例外

timeout が -1 (無制限のタイムアウト) 以外の負数です。または、タイムアウトが MaxValue を超えています。timeout is a negative number other than -1, which represents an infinite timeout -or- timeout is greater than MaxValue.

semaphoreSlim インスタンスが破棄されました。.The semaphoreSlim instance has been disposed .

注釈

タイムアウトが-1 ミリ秒に設定されている場合、メソッドは無期限に待機します。If the timeout is set to -1 milliseconds, the method waits indefinitely.

タイムアウトが0ミリ秒に設定されている場合、メソッドはブロックしません。If the timeout is set to zero milliseconds, the method doesn't block. 待機ハンドルの状態をテストし、すぐに制御を戻します。It tests the state of the wait handle and returns immediately.

スレッドまたはタスクがセマフォに入ることができる場合は、 CurrentCountプロパティを1つデクリメントします。If a thread or task is able to enter the semaphore, it decrements the CurrentCount property by one.

を呼び出しWait(TimeSpan)たときにスレッドまたはタスクがブロックされ、にmillisecondsTimeoutよって指定されたタイムアウト間隔が切れる場合は、次のようになります。If a thread or task is blocked when calling Wait(TimeSpan) and the timeout interval specified by millisecondsTimeout expires:

  • スレッドまたはタスクがセマフォに入ることはありません。The thread or task doesn't enter the semaphore.
  • プロパティCurrentCountはデクリメントされません。The CurrentCount property isn't decremented.

こちらもご覧ください

Wait(Int32)

タイムアウト値を 32 ビット符号付き整数で指定して、SemaphoreSlim に入るまで、現在のスレッドをブロックします。Blocks the current thread until it can enter the SemaphoreSlim, using a 32-bit signed integer that specifies the timeout.

public:
 bool Wait(int millisecondsTimeout);
public bool Wait (int millisecondsTimeout);
member this.Wait : int -> bool
Public Function Wait (millisecondsTimeout As Integer) As Boolean

パラメーター

millisecondsTimeout
Int32

待機するミリ秒数です。Infinite (-1) の場合は無期限に待機します。または、ゼロの場合は待機ハンドルの状態をテストしてすぐに返します。The number of milliseconds to wait, Infinite(-1) to wait indefinitely, or zero to test the state of the wait handle and return immediately.

戻り値

現在のスレッドが SemaphoreSlim に正常に入った場合は true。それ以外の場合は falsetrue if the current thread successfully entered the SemaphoreSlim; otherwise, false.

例外

millisecondsTimeout が -1 (無制限のタイムアウト) 以外の負数です。または、タイムアウトが MaxValue を超えています。millisecondsTimeout is a negative number other than -1, which represents an infinite timeout -or- timeout is greater than MaxValue.

SemaphoreSlim は破棄されています。The SemaphoreSlim has been disposed.

注釈

タイムアウトが-1 ミリ秒に設定されている場合、メソッドは無期限に待機します。If the timeout is set to -1 milliseconds, the method waits indefinitely.

タイムアウトが0ミリ秒に設定されている場合、メソッドはブロックしません。If the timeout is set to zero milliseconds, the method doesn't block. 待機ハンドルの状態をテストし、すぐに制御を戻します。It tests the state of the wait handle and returns immediately.

スレッドまたはタスクがセマフォに入ることができる場合は、 CurrentCountプロパティを1つデクリメントします。If a thread or task is able to enter the semaphore, it decrements the CurrentCount property by one.

を呼び出しWait(Int32)たときにスレッドまたはタスクがブロックされ、にmillisecondsTimeoutよって指定されたタイムアウト間隔が切れる場合は、次のようになります。If a thread or task is blocked when calling Wait(Int32) and the timeout interval specified by millisecondsTimeout expires:

  • スレッドまたはタスクがセマフォに入ることはありません。The thread or task doesn't enter the semaphore.
  • プロパティCurrentCountはデクリメントされません。The CurrentCount property isn't decremented.

こちらもご覧ください

Wait()

SemaphoreSlim に入るまで、現在のスレッドをブロックします。Blocks the current thread until it can enter the SemaphoreSlim.

public:
 void Wait();
public void Wait ();
member this.Wait : unit -> unit
Public Sub Wait ()

例外

現在のインスタンスは既に破棄されています。The current instance has already been disposed.

注釈

スレッドまたはタスクがセマフォに入ることができる場合は、 CurrentCountプロパティを1つデクリメントします。If a thread or task is able to enter the semaphore, it decrements the CurrentCount property by one.

こちらもご覧ください

Wait(CancellationToken)

SemaphoreSlim を観察すると同時に、CancellationToken に入るまで、現在のスレッドをブロックします。Blocks the current thread until it can enter the SemaphoreSlim, while observing a CancellationToken.

public:
 void Wait(System::Threading::CancellationToken cancellationToken);
public void Wait (System.Threading.CancellationToken cancellationToken);
member this.Wait : System.Threading.CancellationToken -> unit

パラメーター

cancellationToken
CancellationToken

観察する CancellationToken トークン。The CancellationToken token to observe.

例外

cancellationToken が取り消されました。cancellationToken was canceled.

現在のインスタンスは既に破棄されています。The current instance has already been disposed.

または-or- cancellationToken を作成した CancellationTokenSource は既に破棄されています。The CancellationTokenSource that created cancellationToken has already been disposed.

注釈

スレッドまたはタスクがセマフォに入ることができる場合は、 CurrentCountプロパティを1つデクリメントします。If a thread or task is able to enter the semaphore, it decrements the CurrentCount property by one.

cancellationToken取り消された場合、スレッドまたはタスクはセマフォに入るのCurrentCountではなく、プロパティはデクリメントされません。If cancellationToken is cancelled, the thread or task doesn't enter the semaphore, and the CurrentCount property isn't decremented. 代わりに、メソッドは例外をOperationCanceledExceptionスローします。Instead, the method throws an OperationCanceledException exception.

こちらもご覧ください

適用対象