З статті MSDN про STAThread:
Вказує, що модель різьблення COM для програми - це однопоточна квартира (STA).
(Для довідки, це вся стаття .)
Квартира з однією різьбою ... Добре, що мені перейшло через голову. Крім того, я десь читав, що якщо ваша програма не використовує інтероп COM, цей атрибут насправді нічого не робить. Отже, що саме це робить, і як це впливає на багатопотокові програми? Чи повинні багатопотокові програми (що включає в себе що-небудь від тих, хто використовує Timer
s для асинхронних викликів методів, а не лише потокові пули тощо), використовуючи MTAThread, навіть якщо це "просто для безпеки"? Що насправді робить STAThread та MTAThread?