次の方法で共有


GdiFlush 関数 (wingdi.h)

GdiFlush 関数は、呼び出し元のスレッドの現在のバッチをフラッシュします。

構文

BOOL GdiFlush();

戻り値

現在のバッチ内のすべての関数が成功した場合、戻り値は 0 以外になります。

現在のバッチ内のすべての関数が成功しない場合、戻り値は 0 で、少なくとも 1 つの関数がエラーを返したことを示します。

注釈

バッチ処理では、ブール値を返す GDI 描画関数を呼び出すために必要な時間を最小限に抑えることで、描画のパフォーマンスが向上します。 システムは、現在のバッチでこれらの関数の呼び出しのパラメーターを蓄積し、次のいずれかの方法でバッチがフラッシュされたときに関数を呼び出します。

  • GdiFlush 関数の呼び出し。
  • GdiSetBatchLimit 関数によって設定されたバッチ制限に達するか超えています。
  • バッチ処理バッファーを入力します。
  • ブール値を返さない GDI 関数を呼び出します。
GdiFlush の戻り値は、GdiFlush が呼び出されるときにバッチ内の関数にのみ適用されます。 バッチが他の方法でフラッシュされるときに発生するエラーは報告されません。

GdiGetBatchLimit 関数は、バッチ制限を返します。

メモ バッチ制限は、スレッドごとに個別に保持されます。 バッチ処理を完全に無効にするには、各スレッドの初期化中に GdiSetBatchLimit (1) を呼び出します。
 
グラフィックス バッチ キューに保留中の関数呼び出しがある可能性がある場合は、スレッドが消える前に、アプリケーションで GdiFlush を呼び出す必要があります。 スレッドが消えた場合、システムはこのようなバッチ処理された関数を実行しません。

ミューテックスを使用して GDI オブジェクトへのアクセスをシリアル化するマルチスレッド アプリケーションでは、各スレッドが GDI オブジェクトの所有権を解放するため 、GdiFlush を呼び出して GDI バッチ キューをフラッシュする必要があります。 これにより、GDI オブジェクト (デバイス コンテキスト、メタファイルなど) の競合を防ぐことができます。

要件

要件
サポートされている最小のクライアント Windows 2000 Professional [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー wingdi.h (Windows.h を含む)
Library Gdi32.lib
[DLL] Gdi32.dll

こちらもご覧ください

GdiGetBatchLimit

GdiSetBatchLimit

描画関数と描画関数

描画と描画の概要