ReaderWriterLockSlim.TryEnterUpgradeableReadLock メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
オプションのタイムアウトを指定して、アップグレード可能モードでロックに入ることを試みます。
オーバーロード
TryEnterUpgradeableReadLock(Int32) |
オプションのタイムアウトを指定して、アップグレード可能モードでロックに入ることを試みます。 |
TryEnterUpgradeableReadLock(TimeSpan) |
オプションのタイムアウトを指定して、アップグレード可能モードでロックに入ることを試みます。 |
TryEnterUpgradeableReadLock(Int32)
オプションのタイムアウトを指定して、アップグレード可能モードでロックに入ることを試みます。
public:
bool TryEnterUpgradeableReadLock(int millisecondsTimeout);
public bool TryEnterUpgradeableReadLock (int millisecondsTimeout);
member this.TryEnterUpgradeableReadLock : int -> bool
Public Function TryEnterUpgradeableReadLock (millisecondsTimeout As Integer) As Boolean
パラメーター
戻り値
呼び出し元のスレッドがアップグレード可能モードに入った場合は true
、それ以外の場合は false
。
例外
RecursionPolicy プロパティが NoRecursion で、現在のスレッドは既にロックに入っています。
- または -
現在のスレッドは最初に読み取りモードでロックに入ったため、アップグレード可能モードに入ろうとするとデッドロックの可能性が生じます。
- または -
再帰の回数は、カウンターの容量を超える可能性があります。 この容量は非常に大きいので、アプリケーションでこの状況が発生することは通常はありません。
millisecondsTimeout
の値が負ですが、指定できる唯一の負の値である Infinite (-1) と等しくありません。
ReaderWriterLockSlim オブジェクトは破棄されました。
注釈
が 0 (ゼロ) の場合 millisecondsTimeout
、このメソッドはロック状態を確認し、目的の状態が使用できない場合は直ちにを返 false
します。
通常、スレッドが読み取りモードで によって ReaderWriterLockSlim 保護されているリソースにアクセスするが、特定の条件が満たされた場合に書き込みモードに入る必要がある場合は、アップグレード可能モードを使用します。 アップグレード可能モードのスレッドは、書き込みモードにアップグレードすることも、読み取りモードにダウングレードすることもできます。
アップグレード可能モードでロックに入ることができるスレッドは、いつでも 1 つだけです。 スレッドがアップグレード可能モードで、書き込みモードに入るのを待機しているスレッドがない場合は、アップグレード可能モードに入るのを待機しているスレッドが存在する場合でも、他の任意の数のスレッドが読み取りモードに入ることができます。
1 つ以上のスレッドが書き込みモードに入るのを待機している場合、メソッドを呼び出す TryEnterUpgradeableReadLock スレッドは、それらのスレッドがタイムアウトするか書き込みモードに入ってから終了するか、呼び出し元のスレッド独自のタイムアウト間隔が切れるまでブロックします。
Note
ロックで再帰が許可されている場合、アップグレード可能モードでロックに入ったスレッドは、他のスレッドが書き込みモードに入るのを待機している場合でも、アップグレード可能モードに再帰的に入ることができます。
適用対象
TryEnterUpgradeableReadLock(TimeSpan)
オプションのタイムアウトを指定して、アップグレード可能モードでロックに入ることを試みます。
public:
bool TryEnterUpgradeableReadLock(TimeSpan timeout);
public bool TryEnterUpgradeableReadLock (TimeSpan timeout);
member this.TryEnterUpgradeableReadLock : TimeSpan -> bool
Public Function TryEnterUpgradeableReadLock (timeout As TimeSpan) As Boolean
パラメーター
- timeout
- TimeSpan
待機する間隔。無制限に待機する場合は -1 ミリ秒。
戻り値
呼び出し元のスレッドがアップグレード可能モードに入った場合は true
、それ以外の場合は false
。
例外
RecursionPolicy プロパティが NoRecursion で、現在のスレッドは既にロックに入っています。
- または -
現在のスレッドは最初に読み取りモードでロックに入ったため、アップグレード可能モードに入ろうとするとデッドロックの可能性が生じます。
- または -
再帰の回数は、カウンターの容量を超える可能性があります。 この容量は非常に大きいので、アプリケーションでこの状況が発生することは通常はありません。
ReaderWriterLockSlim オブジェクトは破棄されました。
注釈
が 0 (ゼロ) の場合 timeout
、このメソッドはロック状態を確認し、目的の状態が使用できない場合は直ちにを返 false
します。
通常、スレッドが読み取りモードで によって ReaderWriterLockSlim 保護されているリソースにアクセスするが、特定の条件が満たされた場合に書き込みモードに入る必要がある場合は、アップグレード可能モードを使用します。 アップグレード可能モードのスレッドは、書き込みモードにアップグレードすることも、読み取りモードにダウングレードすることもできます。
アップグレード可能モードでロックに入ることができるスレッドは、いつでも 1 つだけです。 スレッドがアップグレード可能モードで、書き込みモードに入るのを待機しているスレッドがない場合は、アップグレード可能モードに入るのを待機しているスレッドが存在する場合でも、他の任意の数のスレッドが読み取りモードに入ることができます。
1 つ以上のスレッドが書き込みモードに入るのを待機している場合、メソッドを呼び出す TryEnterUpgradeableReadLock スレッドは、それらのスレッドがタイムアウトするか書き込みモードに入ってから終了するか、呼び出し元のスレッド独自のタイムアウト間隔が切れるまでブロックします。
Note
ロックで再帰が許可されている場合、アップグレード可能モードでロックに入ったスレッドは、他のスレッドが書き込みモードに入るのを待機している場合でも、アップグレード可能モードに再帰的に入ることができます。
適用対象
.NET