I am reading Inside COM by Dale Rogerson, and it uses the terms apartment threads and free threads to describe the different types of COM threads.
He also clarifies that these correspond directly to UI threads and worker threads:
COM uses the same two types of threads, although COM has different names for them. Instead of calling one a user-interface thread, COM uses the term apartment thread. The term free thread is used instead of worker thread. [...]
However, lots of other documentation refers to STAs and MTAs. "Single-Threaded Apartments" and "Multi-Threaded Apartments."
- Do "apartments/free threads" and "STA/MTA" mean different things? Does Rogerson's book (1997) no longer reflect COM's threading model?
- Why has the naming changed?
Disclaimer: I work for Microsoft.
It seems that the terms are interchangeable:
Descriptions and workings of OLE threading models indicates
STA == apartment threadandMTA == free thread(even though both new terms use the word "apartment"):And as quoted above
apartment thread == UI threadandfree thread == worker threadaccording to Rogerson:I'd love to know why the terminology changed, though.