[STAThread] は何をしますか? 質問する

[STAThread] は何をしますか? 質問する

[STAThread]私は C# 3.5 を学習していますが、プログラムで何が行われているのかを知りたいです。

ベストアンサー1

これはSTAThreadAttribute基本的に、Windows メッセージ ポンプが COM コンポーネントと通信するための要件です。コア Windows フォームは COM を使用しませんが、システム ダイアログなどの OS の多くのコンポーネントはこのテクノロジを使用します。

マイクロソフトその理由をもう少し詳しく説明します。

STAThreadAttribute は、アプリケーションの COM スレッド モデルがシングル スレッド アパートメントであることを示します。この属性は、Windows フォームを使用するすべてのアプリケーションのエントリ ポイントに存在する必要があります。省略すると、Windows コンポーネントが正しく動作しない可能性があります。この属性が存在しない場合、アプリケーションはマルチスレッド アパートメント モデルを使用しますが、これは Windows フォームではサポートされていません。

このブログ投稿(なぜSTAThreadが必要なのか? ) も要件を非常によく説明しています。CLRレベルでスレッドモデルがどのように機能するかについてより詳しく知りたい場合は、2004 年 6 月の MSDN マガジンの記事(アーカイブ、2009年4月)。

おすすめ記事