Do artigo do MSDN sobre STAThread:
Indica que o modelo de threading COM para um aplicativo é single-threaded apartment (STA).
(Para referência, este é o artigo completo .)
Apartamento single-threaded ... OK, isso passou pela minha cabeça. Além disso, li em algum lugar que, a menos que seu aplicativo use interoperabilidade COM, esse atributo na verdade não faz nada. Então, o que exatamente ele faz e como afeta os aplicativos multithread? Os aplicativos multithread (que inclui qualquer coisa, desde qualquer pessoa usando Timer
s até chamadas de método assíncronas, não apenas threadpools e similares) devem usar MTAThread, mesmo que seja 'apenas para segurança'? O que STAThread e MTAThread realmente fazem?