タイムアウトに TimeSpan 値を使用して、リーダー ロックをライタ ロックにアップグレードします。
Overloads Public Function UpgradeToWriterLock( _
ByVal timeout As TimeSpan _) As LockCookie
[C#]
public LockCookie UpgradeToWriterLock(TimeSpantimeout);
[C++]
public: LockCookie UpgradeToWriterLock(TimeSpantimeout);
[JScript]
public function UpgradeToWriterLock(
timeout : TimeSpan) : LockCookie;
パラメータ
- timeout
タイムアウト時間を指定する TimeSpan 。
戻り値
LockCookie 値。
例外
例外の種類 | 条件 |
---|---|
ApplicationException | timeout は、ロック要求が許可される前に期限が切れます。 |
ArgumentOutOfRangeException | timeout は、-1 ミリ秒以外の負の値を指定します。 |
解説
UpgradeToWriterLock を呼び出すと、ロック カウントに関係なく、リーダー ロックは解放され、このスレッドはライタ ロックのキューの最後に格納されます。したがって、アップグレードを要求したスレッドがライタ ロックを取得する前に、別のスレッドがリソースへの書き込みを行う場合もあります。
ロックの状態を復元するには、 UpgradeToWriterLock が返した LockCookie を使用して DowngradeFromWriterLock を呼び出します。 RestoreLock でこの LockCookie を使用しないでください。
スレッドがリーダー ロックを保持していない場合は、 UpgradeToWriterLock を使用しないでください。代わりに AcquireWriterLock を使用します。
有効なタイムアウト値については、 ReaderWriterLock を参照してください。
必要条件
プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ
参照
ReaderWriterLock クラス | ReaderWriterLock メンバ | System.Threading 名前空間 | ReaderWriterLock.UpgradeToWriterLock オーバーロードの一覧 | スレッド処理 | ReaderWriterLock