「[[マイクロソフト系技術情報 Wiki>http://techinfoofmicrosofttech.osscons.jp/]]」は、「[[Open棟梁Project>https://github.com/OpenTouryoProject/]]」,「[[OSSコンソーシアム .NET開発基盤部会>https://www.osscons.jp/dotNetDevelopmentInfrastructure/]]」によって運営されています。 -[[戻る>COM]] --STA --[[MTA]] * 目次 [#veaac6e2] #contents *概要 [#fdcc6197] -STA : Single-Threaded Apartment -マルチスレッド・クライアントにスレッドセーフなアクセスを提供する仕組み。 *詳細 [#cd81a2b0] **STAのアパートメント [#r3863953] -1スレッドだけ所属できるアパートメント -アパートメント属性はスレッドに対して設定される。 **STAのオブジェクト [#m68e6c21] -単一のスレッドのアクセスだけを想定しているオブジェクト。 -単一のスレッドだけオブジェクトにアクセスすることが保障される。 **STAの仕組み [#y8550266] -スレッド毎にメンバ変数をコピーすることで実現する。~ -メンバ変数は、生成したCOMをスレッドの~ Thread Local Storage (TLS)上にコピーされる。 -また、他のスレッドから呼び出される場合、~ [[Windowsメッセージキュー>ウィンドウ メッセージ]]を使用した~ スレッド間マーシャリング(Proxy・Stub)で直列化される。 *参考 [#xabeea9b] -[[STA]]と[[MTA]]~ http://eternalwindows.jp/com/apartment/apartment01.html -COMにおけるアパートメントの概要 - イグトランスの頭の中~ http://dev.activebasic.com/egtra/2014/12/10/703/ -Single-Threaded Apartments - Windows applications | Microsoft Docs~ https://docs.microsoft.com/en-us/windows/win32/com/single-threaded-apartments ---- Tags: [[:Windows]], [[:プログラミング]], [[:.NET開発]]