PostSharp 6.10 / / Post­Sharp Documentation / API Reference / Post­Sharp.​Patterns.​Threading Namespace / IConcurrency­Controller Interface / IConcurrency­Controller Methods / IConcurrency­Controller.​Acquire­Access­Async Method

IConcurrencyController.AcquireAccessAsync Method

Asynchronously acquires access on the entity for the current thread and returns an async awaiter.

Namespace:  PostSharp.Patterns.Threading
Assembly:  PostSharp.Patterns.Common (in PostSharp.Patterns.Common.dll) Version: (
ConcurrentAccessAwaiter AcquireAccessAsync(
	ObjectAccessLevel objectAccessLevel


Type: PostSharp.Patterns.Model.ObjectAccessLevel
The required access level on the entity.

Return Value

Type: ConcurrentAccessAwaiter
a ConcurrentAccessAwaiter compatible with the await keyword, and evaluating to an opaque ConcurrentAccessToken typically used in a using block. Consumers must invoke the Complete() method upon success before exiting the using block.

When you are using this method through the expression threadAware.ConcurrentController.AcquireAccess, there may be a race condition during the evaluation of the expression. Use the AcquireAccessAsync(IThreadAware, ObjectAccessLevel) extension method to acquire access to a thread-aware object in a thread-safe manner.

See Also