プロジェクトのスレッド モデルの指定
次のマクロは、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 シンプル オブジェクト ウィザード を参照してください。