ReaderWriterLockSlim.TryEnterUpgradeableReadLock メソッド

定義

オプションのタイムアウトを指定して、アップグレード可能モードでロックに入ることを試みます。

オーバーロード

TryEnterUpgradeableReadLock(Int32)

オプションのタイムアウトを指定して、アップグレード可能モードでロックに入ることを試みます。

TryEnterUpgradeableReadLock(TimeSpan)

オプションのタイムアウトを指定して、アップグレード可能モードでロックに入ることを試みます。

TryEnterUpgradeableReadLock(Int32)

ソース:
ReaderWriterLockSlim.cs
ソース:
ReaderWriterLockSlim.cs
ソース:
ReaderWriterLockSlim.cs

オプションのタイムアウトを指定して、アップグレード可能モードでロックに入ることを試みます。

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

パラメーター

millisecondsTimeout
Int32

待機するミリ秒数。無制限に待機する場合は Infinite (-1)。

戻り値

呼び出し元のスレッドがアップグレード可能モードに入った場合は true、それ以外の場合は false

例外

RecursionPolicy プロパティが NoRecursion で、現在のスレッドは既にロックに入っています。

- または -

現在のスレッドは最初に読み取りモードでロックに入ったため、アップグレード可能モードに入ろうとするとデッドロックの可能性が生じます。

- または -

再帰の回数は、カウンターの容量を超える可能性があります。 この容量は非常に大きいので、アプリケーションでこの状況が発生することは通常はありません。

millisecondsTimeout の値が負ですが、指定できる唯一の負の値である Infinite (-1) と等しくありません。

ReaderWriterLockSlim オブジェクトは破棄されました。

注釈

が 0 (ゼロ) の場合 millisecondsTimeout 、このメソッドはロック状態を確認し、目的の状態が使用できない場合は直ちにを返 false します。

通常、スレッドが読み取りモードで によって ReaderWriterLockSlim 保護されているリソースにアクセスするが、特定の条件が満たされた場合に書き込みモードに入る必要がある場合は、アップグレード可能モードを使用します。 アップグレード可能モードのスレッドは、書き込みモードにアップグレードすることも、読み取りモードにダウングレードすることもできます。

アップグレード可能モードでロックに入ることができるスレッドは、いつでも 1 つだけです。 スレッドがアップグレード可能モードで、書き込みモードに入るのを待機しているスレッドがない場合は、アップグレード可能モードに入るのを待機しているスレッドが存在する場合でも、他の任意の数のスレッドが読み取りモードに入ることができます。

1 つ以上のスレッドが書き込みモードに入るのを待機している場合、メソッドを呼び出す TryEnterUpgradeableReadLock スレッドは、それらのスレッドがタイムアウトするか書き込みモードに入ってから終了するか、呼び出し元のスレッド独自のタイムアウト間隔が切れるまでブロックします。

Note

ロックで再帰が許可されている場合、アップグレード可能モードでロックに入ったスレッドは、他のスレッドが書き込みモードに入るのを待機している場合でも、アップグレード可能モードに再帰的に入ることができます。

適用対象

TryEnterUpgradeableReadLock(TimeSpan)

ソース:
ReaderWriterLockSlim.cs
ソース:
ReaderWriterLockSlim.cs
ソース:
ReaderWriterLockSlim.cs

オプションのタイムアウトを指定して、アップグレード可能モードでロックに入ることを試みます。

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 で、現在のスレッドは既にロックに入っています。

- または -

現在のスレッドは最初に読み取りモードでロックに入ったため、アップグレード可能モードに入ろうとするとデッドロックの可能性が生じます。

- または -

再帰の回数は、カウンターの容量を超える可能性があります。 この容量は非常に大きいので、アプリケーションでこの状況が発生することは通常はありません。

timeout の値が負ですが、指定できる唯一の負の値である -1 ミリ秒と等しくありません。

- または -

timeout 値が Int32.MaxValue ミリ秒を超えています。

ReaderWriterLockSlim オブジェクトは破棄されました。

注釈

が 0 (ゼロ) の場合 timeout 、このメソッドはロック状態を確認し、目的の状態が使用できない場合は直ちにを返 false します。

通常、スレッドが読み取りモードで によって ReaderWriterLockSlim 保護されているリソースにアクセスするが、特定の条件が満たされた場合に書き込みモードに入る必要がある場合は、アップグレード可能モードを使用します。 アップグレード可能モードのスレッドは、書き込みモードにアップグレードすることも、読み取りモードにダウングレードすることもできます。

アップグレード可能モードでロックに入ることができるスレッドは、いつでも 1 つだけです。 スレッドがアップグレード可能モードで、書き込みモードに入るのを待機しているスレッドがない場合は、アップグレード可能モードに入るのを待機しているスレッドが存在する場合でも、他の任意の数のスレッドが読み取りモードに入ることができます。

1 つ以上のスレッドが書き込みモードに入るのを待機している場合、メソッドを呼び出す TryEnterUpgradeableReadLock スレッドは、それらのスレッドがタイムアウトするか書き込みモードに入ってから終了するか、呼び出し元のスレッド独自のタイムアウト間隔が切れるまでブロックします。

Note

ロックで再帰が許可されている場合、アップグレード可能モードでロックに入ったスレッドは、他のスレッドが書き込みモードに入るのを待機している場合でも、アップグレード可能モードに再帰的に入ることができます。

適用対象