PostSharp.Patterns.Threading Namespace |

Class | Description | |
---|---|---|
![]() | AccessLevelAttribute | |
![]() | ActorAttribute |
Custom attribute that, when applied to a class, implements the ActorThreadingModel to this class,
in which calls to methods are processed asynchronously from a single thread, suppressing concurrency inside each instance of the target class.
|
![]() | ActorDispatcher |
A dispatcher compatible with the ActorThreadingModel threading model, with a message queue based on a ConcurrentQueue
The queue itself is processed from the ThreadPool.
|
![]() | AssumeImmutableAttribute |
Custom attribute that, when applied to a targetType, means that targetType should be assumed to be immutable.
The custom attribute can be applied to a type on assembly level by specifying the Type property using
the AssumeImmutableAttribute(Type) constructor.
|
![]() | BackgroundAttribute |
Custom attribute that, when applied on a method, causes the method to execute in the background. This aspect can be applied to a method with
void or Task return type.
|
![]() | ConcurrencyControllerFactory |
Provides methods to create new instances of concurrency controllers.
|
![]() | ConcurrentAccessException |
Exception thrown when two threads simultaneously attempt to access a method annotated with the ThreadUnsafeAttribute
custom attribute.
|
![]() | DeadlockDetectedEventArgs |
Arguments for the DeadlockDetected event.
|
![]() | DeadlockDetectionPolicy |
Detects deadlocks occurring because of circular wait conditions.
|
![]() | DeadlockedThreadInfo |
Described state of thread that was detected to be in a deadlock.
|
![]() | DeadlockException |
Exception thrown by the DeadlockDetectionPolicy class when a deadlock
is detected.
|
![]() | DeadlockInfo |
Describes the detected deadlock.
|
![]() | DispatchedAttribute |
Custom attribute that, when applied on a method, specifies that the method should be executed in UI thread.
|
![]() | DispatcherFactory |
Provides implementations of the IDispatcher interface.
|
![]() | EntryPointAttribute |
Custom attribute that, when applied to a private or protected instance method,
causes all threading model aspects (derived from ThreadAwareAttribute to introduce runtime generation code.
|
![]() | ExplicitlySynchronizedAttribute |
Custom attribute that, when applied to a method or field, specifies that threading model aspects (derived from ThreadAwareAttribute)
should ignore all verifications for this field or method.
|
![]() | FreezableAttribute |
Custom attribute that, when applied to a class, implements the FreezableThreadingModel to this class.
The aspect introduces the IFreezable interface into the target class. After the Freeze()
method has been invoked, the object can no longer be modified, and can therefore be safely shared between several threads.
|
![]() | ImmutableAttribute |
Custom attribute that, when applied to a class, implements the ImmutableThreadingModel to this class.
The aspect introduces the IImmutable interface into the target class. Immutable objects cannot
be modified after the constructor exits.
|
![]() | ObjectReadOnlyException |
Exception thrown by objects that have the FreezableThreadingModel or ImmutableThreadingModel
when an attempt is made to modify the object after it has been made read-only.
|
![]() | PrivateThreadAwareAttribute |
Custom attribute that, when applied to a class, implement the PrivateThreadingModel into this class,
in which the threading model of an object is determined by the parent it is assigned to in a parent-child relationship.
|
![]() | ReaderAttribute |
Custom attribute that, when applied on a method, specifies that the method requires read access to the object.
|
![]() | ReaderWriterSynchronizedAttribute |
Custom attribute that, when applied on a class, applies the ReaderWriterSynchronizedThreadingModel model to this class
and all derived class.
Members of this class must then be annotated with attributes specifying the required access level
(ReaderAttribute, WriterAttribute, YielderAttribute
or UpgradeableReaderAttribute), otherwise build-time and run-time errors are emitted.
|
![]() | ReadOnlyThreadAwareAttribute |
Base class for aspects FreezableAttribute and ImmutableAttribute.
|
![]() | ReentrantAttribute |
Custom attribute that means that the async method to which it is applied can be safely
re-entered on each await statement. In case of lock-based models, it means that the lock
is released while awaiting. For the actor model, it means that other methods can be invoked
during awaiting.
|
![]() | RequiresThreadSafeAttribute |
Custom attribute that, when applied to a field, property or parameter, checks that the assigned object is thread safe.
Otherwise, the assignment results in an ArgumentException/
|
![]() | SynchronizedAttribute |
Custom attribute that, when applied to a class, implements the SynchronizedThreadingModel into this class.
In a synchronized object, only a single thread can access the object at a time. If a second thread needs to access the object
while it is in used by a first thread, the second thread has to wait until the first thread completes its access.
|
![]() | ThreadAccessException |
Exception thrown when the calling thread does not have access to the object.
|
![]() | ThreadAffineAttribute |
Custom attribute that, when applied on a type, ensures the instances of this type can only be accessed by the thread
that created the instance. When a different thread accesses instances of this type, a ThreadMismatchException exception is thrown.
|
![]() | ThreadAwareAttribute |
Base class for all aspects implementing threading models.
|
![]() | ThreadAwareExtensions |
Provides extension methods to the IThreadAware interface.
|
![]() | ThreadingException |
Base class for exceptions thrown by the PostSharp.Patterns.Threading component.
|
![]() | ThreadingModel |
Base class for all threading models. Defines properties that describe the characteristics of threading models. All classes derived from ThreadingModel
are necessarily singletons.
|
![]() | ThreadingPatternsAspectRoles |
Enumerates the aspect roles (for use with AspectRoleDependencyAttribute)
used by the PostSharp.Patterns.Threading component.
|
![]() | ThreadingServices |
Exposes methods to work with the PostSharp.Patterns.Threading namespace.
|
![]() | ThreadingUnhandledExceptionEventArgs |
Arguments of the UnhandledException event.
|
![]() | ThreadMismatchException |
Exception thrown when a thread attempts to access an object that is affined to another thread.
|
![]() | ThreadSafetyPolicy |
When applied to an assembly, this policy will check for possible concurrency issues.
|
![]() | ThreadUnsafeAttribute |
Custom attribute that, when applied on a type, ensures that only one thread executes in methods of this type.
When more than one thread accesses methods of this type, a ConcurrentAccessException exception is thrown.
|
![]() | UpgradeableReaderAttribute |
Custom attribute that, when applied on a method, specifies that the method requires read and write access to the object,
but other threads are allowed to acquire read (but not write) access to the object until a method with the WriterAttribute
custom attribute is executed.
|
![]() | WriterAttribute |
Custom attribute that, when applied on a method, specifies that the method requires write access to the object.
|
![]() | YielderAttribute |
Custom attribute that, when applied on a method, specifies that the method that currently holds write access to the object (see WriterAttribute)
allows other threads to read the object during the execution of the target method. This custom attribute is typically used on methods that raise events
that must be processed synchronously by other threads.
|

Structure | Description | |
---|---|---|
![]() | AmbientConcurrencyControllerContext |
A disposable cookie returned by WithConcurrencyController(IConcurrencyController).
|
![]() | ConcurrentAccessAwaiter |
An awaiter for the AcquireAccessAsync(ObjectAccessLevel) method. The struct implements both the Awaiter and Awaitable contracts.
|
![]() | ConcurrentAccessToken |
Token returned by the AcquireAccess(ObjectAccessLevel, ConcurrentAccessToken) method. This token is intended to be used in a using block.
Consumers of this method must call Complete() on success, and Dispose() on exception.
|

Interface | Description | |
---|---|---|
![]() | IActor |
Interface implemented by the ActorAttribute aspect.
|
![]() | IActorController |
Specific definition of the IConcurrencyController for the ActorThreadingModel.
|
![]() | IActorDispatcher |
Augments the IDispatcher interface with an Initialize() method, which is invoked after the actor constructor has been invoked.
|
![]() | IConcurrencyController |
Controls access to an entity from possibly several threads.
|
![]() | IDispatcher |
Defines the semantics of a facility that executes actions synchronously or asynchronously,
possibly on a different thread.
|
![]() | IDispatcherObject |
Interface implemented by objects that are whose access to methods is
being controlled by a Dispatcher.
|
![]() | IFreezable |
Interface implemented by the FreezableAttribute aspect. Defines a Freeze() method.
|
![]() | IImmutable |
Interface implemented by the ImmutableAttribute aspect.
|
![]() | IThreadAware |
Interface implemented by objects that are aware of concurrency. Access to thread-aware objects is controlled by a concurrency controller (IConcurrencyController).
Any aspect implementing a threading model (ThreadAwareObjectAttribute) introduces this interface to the target class and ensures that accesses to this class go through
the controller.
|

Enumeration | Description | |
---|---|---|
![]() | DispatchedExecutionMode |
Determines whether the caller of a dispatched method (see DispatchedAttribute)
waits for the called method.
|
![]() | ThreadingUnhandledExceptionSource |
Enumeration of components that can raise the UnhandledException event.
|