次の方法で共有


プロジェクトのスレッド モデルの指定

次のマクロは、ATL プロジェクトのスレッド処理モデルを指定して用意されています:

マクロ

使用するガイドライン

_ATL_SINGLE_THREADED

、のすべてのオブジェクトがシングルスレッド モデルを使用する場合に定義します。

_ATL_APARTMENT_THREADED

1 つ以上のオブジェクトでアパートメント スレッドを使用する場合に定義します。

_ATL_FREE_THREADED

1 つ以上のオブジェクトでフリー スレッドまたはニュートラル スレッドを使用する場合に定義します。既存のコードは同等のマクロ _ATL_MULTI_THREADEDへの参照が含まれる場合があります。

プロジェクトのこれらのマクロを一つも定義しない場合、_ATL_FREE_THREADED が有効になります。

マクロは次のようにランタイム パフォーマンスに影響します:

  • プロジェクトのオブジェクトに対応するマクロを指定すると、ランタイム パフォーマンスが向上します。

  • 、のすべてのオブジェクトが一つのスレッドとたとえば_ATL_APARTMENT_THREADED を指定するマクロのレベルを指定するには、少し実行時のパフォーマンスが著しく低下します。

  • 、一つ以上のオブジェクトでアパートメント スレッドまたはフリーのスレッドを使用する場合_ATL_SINGLE_THREADED を指定するマクロの低レベルを指定すると、実行時に発生してアプリケーションが発生する場合があります。

ATL オブジェクトで使用可能なスレッド処理モデルの詳細については、オプション、ATL シンプル オブジェクト ウィザード を参照してください。

参照

その他の技術情報

ATL の概念