STAThreadAttributeを付けない方がいいのはどんなアプリケーション?
.NETでForms/WPFを使う場合にお約束のように付けられている STAThreadAttribute
ですが、クリップボードを扱う場合などはコンソールアプリでも付ける必要があります。
では逆に、STAThreadAttribute
を付けない方がいい場合はあるのでしょうか。
COMサーバを作る場合であれば、MTAの方が複数スレッドから呼び出せることでパフォーマンス向上が狙えるかと思いますが、そうでないアプリケーションでMTAにする理由はあまりないように思えます。.NET内部でCOMサーバーになっているケースもあるとは思いますが、それが前述の STAThreadAttribute
が必要な場面だとすると、結局STAにせざるを得ません。
だとするとコンソールアプリケーションやサーバー等を作る場合でも、とりあえず STAThreadAttribute
を付けておけばいいのでは?と思ったのですがどうでしょうか。
参考サイト