GdiFlush 函式 (wingdi.h)

GdiFlush 函式會排清呼叫線程的目前批次。

Syntax

BOOL GdiFlush();

傳回值

如果目前批次中的所有函式都成功,則傳回值為非零。

如果目前批次中的所有函式都成功,則傳回值為零,表示至少有一個函式傳回錯誤。

備註

批處理可藉由將呼叫傳回布爾值之 GDI 繪圖函式所需的時間量降到最低,藉此增強繪圖效能。 系統會累積目前批次中這些函式呼叫的參數,然後在批次排清下列任何方法時呼叫函式:

  • 呼叫 GdiFlush 函式。
  • 達到或超過 GdiSetBatchLimit 函式所設定的批次限制。
  • 填入批處理緩衝區。
  • 呼叫未傳回布爾值的任何 GDI 函式。
GdiFlush 的傳回值僅適用於呼叫 GdiFlush 時批次中的函式。 永遠不會報告任何其他方法排清批次時所發生的錯誤。

GdiGetBatchLimit 函式會傳回批次限制。

注意 每個線程會個別維護批次限制。 若要完全停用批處理,請在每次線程初始化期間呼叫 GdiSetBatchLimit (1) 。
 
如果圖形批次佇列中有擱置的函式呼叫,應用程式應該在線程消失之前呼叫 GdiFlush 。 當線程消失時,系統不會執行這類批處理函式。

使用 mutex 串行化 GDI 物件的存取權的多線程應用程式,必須藉由呼叫 GdiFlush 來清除 GDI 批次佇列,因為每個線程都會釋放 GDI 物件的擁有權。 這可防止 GDI 物件的衝突 (裝置內容、元檔等等) 。

規格需求

需求
最低支援的用戶端 Windows 2000 專業版 [僅限傳統型應用程式]
最低支援的伺服器 Windows 2000 Server [僅限傳統型應用程式]
目標平台 Windows
標頭 wingdi.h (包含 Windows.h)
程式庫 Gdi32.lib
Dll Gdi32.dll

另請參閱

GdiGetBatchLimit

GdiSetBatchLimit

繪製和繪製函式

繪製和繪圖概觀