This topic has not yet been rated - Rate this topic

ReaderWriterLock.AcquireWriterLock Method (TimeSpan)

Acquires the writer lock, using a TimeSpan value for the time-out.

Namespace:  System.Threading
Assembly:  mscorlib (in mscorlib.dll)
public void AcquireWriterLock(
	TimeSpan timeout
)

Parameters

timeout
Type: System.TimeSpan
The TimeSpan specifying the time-out period.
Exception Condition
ApplicationException

timeout expires before the lock request is granted.

ArgumentOutOfRangeException

timeout specifies a negative value other than -1 milliseconds.

This method blocks if another thread has a reader lock or writer lock. For a description of the way the writer lock alternates with multiple concurrent reader locks, see the ReaderWriterLock class.

A thread that already has a reader lock can acquire the writer lock in one of two ways: by releasing the reader lock before calling AcquireWriterLock, or by calling UpgradeToWriterLock.

Caution note Caution

If a thread calls AcquireWriterLock while it still has a reader lock, it will block on its own reader lock; if an infinite time-out is specified, the thread will deadlock. To avoid such deadlocks, use IsReaderLockHeld to determine whether the current thread already has a reader lock.

AcquireWriterLock supports recursive writer-lock requests. That is, a thread can call AcquireWriterLock multiple times, which increments the lock count each time. You must call ReleaseWriterLock once for each time you call AcquireWriterLock. Alternatively, you can call ReleaseLock to reduce the lock count to zero immediately.

Recursive lock requests are always granted immediately, without placing the requesting thread in the writer queue.

For valid time-out values, see ReaderWriterLock.

.NET Framework

Supported in: 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.
Did you find this helpful?
(1500 characters remaining)
Community Content Add
Annotations FAQ