[解決済み] STAとMTAについて教えてください。
2022-03-23 21:47:42
質問内容
STAとMTAについて、あなたの言葉で説明してください。
また、アパートメントスレッドとは何ですか、COMにのみ関係するものですか?もしそうなら、それはなぜですか?
解決方法は?
COM スレッドモデルは、初期化された COM オブジェクトの実行コンテキストが 1 つのスレッド (Single Thread Apartment) または多数のスレッド (Multi Thread Apartment) に関連付けられる、quot;apartment" モデルと呼ばれています。このモデルでは、COMオブジェクトは一度アパートメントで初期化されると、その実行時間の間、そのアパートメントの一部となる。
STAモデルは、スレッドセーフでないCOMオブジェクトに使用されます。つまり、そのオブジェクトは自身の同期を処理しない。一般的な使用例としては、UIコンポーネントが挙げられる。そのため、他のスレッドがオブジェクトと対話する必要がある場合(フォームのボタンを押すなど)、そのメッセージはSTAスレッドにマーシャルされます。Windowsフォームのメッセージポンプシステムはこの例です。
COM オブジェクトが自身の同期を処理できる場合、MTA モデルを使用することができ、複数のスレッドがマーシャルコールなしでオブジェクトと対話することが可能になります。
関連
-
[解決済み】「The breakpoint will not currently be hit」を改善するには?このドキュメントにはシンボルが読み込まれていません。" という警告はどうすれば改善されますか?
-
[解決済み] VB.NETでプログラムパスを取得する?
-
[解決済み] WinSCP 応答待ちタイムアウト
-
[解決済み] C#のStringとstringの違いは何ですか?
-
[解決済み] .NETでのdecimal, float, doubleの違い?
-
[解決済み] C++11では、標準化されたメモリモデルが導入されました。その意味するところは?そして、C++プログラミングにどのような影響を与えるのでしょうか?
-
[解決済み] プロセスとスレッドの違いは何ですか?
-
[解決済み] なぜList<T>を継承しないのですか?
-
[解決済み] .NET Coreと.NET Standard Class Libraryのプロジェクトタイプの違いは何ですか?
-
[解決済み】サーブレットはどのように動作するのですか?インスタンス化、セッション、共有変数とマルチスレッド
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] CLSID {XXXX} を持つコンポーネントの COM クラスファクトリの取得は、次のエラーにより失敗しました: 80040154。
-
[解決済み] ServicePointManagerは、*スキームのプロキシをサポートしていません[closed]。
-
[解決済み] app.configのマッピングがないアセンブリのapp.configの再マッピングを考慮する。
-
[解決済み] C++/CLIにおけるキャレット('^')の意味は?
-
[解決済み] Visual Studioの "ターゲットフレームワーク "が見つからない
-
[解決済み] DockPanelを空きスペースいっぱいに表示させる方法
-
[解決済み] app.configが作成されるタイミングとapp.exe.configが作成されるタイミング、その違いとは?
-
[解決済み] WCFのデバッグ時にサーバーに自動的に踏み込むことができない
-
[解決済み] .Any() vs .Count() > 0のどちらのメソッドがより良いパフォーマンスを発揮しますか?
-
[解決済み] Visual Studioの「Any CPU」ターゲットはどういう意味ですか?