Dynamically determined apartment (ThreadingModel=Both) In the Both apartment mode, the server auto-selects STA or MTA at object creation to match the apartment type of the calling thread.[24] This can be useful to avoid marshaling overhead when MTA servers are accessed by a STA thread. Thread Neutral Apartment (NA), (ThreadingModel=Neutral) A special apartment without any assigned threads. When an STA or MTA thread calls an NA object in the same process, then the calling thread temporarily leaves its apartment and executes code directly in the NA without any thread switching.[25] Therefore, one can think of NA as an optimization for efficient interapartment method calls.