System.Threading.ApartmentState Enumeration

Specifies the apartment state of a System.Threading.Thread.


public enum ApartmentState


An apartment is a logical container within a process for objects sharing the same thread access requirements. All objects in the same apartment can receive calls from any thread in the apartment. The .NET Framework does not use apartments, and managed objects are responsible for using all shared resources in a thread-safe manner themselves.

Because COM classes use apartments, the common language runtime needs to create and initialize an apartment when calling a COM object in a COM interop situation. A managed thread can create and enter a single-threaded apartment (STA) that allows only one thread, or a multithreaded apartment (MTA) that contains one or more threads. You can control the type of apartment created by setting the Thread.ApartmentState property of the thread to one of the values of the System.Threading.ApartmentState enumeration. Because a given thread can only initialize a COM apartment once, you cannot change the apartment type after the first call to the unmanaged code.

For more information, see System.Threading.Thread, [<topic://cpconManagedUnmanagedThreading>], and Advanced COM Interoperability.


Member NameDescription

The System.Threading.Thread will create and enter a multithreaded apartment.


The System.Threading.Thread will create and enter a single-threaded apartment.


The Thread.ApartmentState property has not been set.


Namespace: System.Threading
Assembly: mscorlib (in mscorlib.dll)
Assembly Versions: 1.0.5000.0,,