The GdiFlush function flushes the calling thread's current batch.
BOOL GdiFlush(VOID)
Parameters
This function has no parameters.
Return Values
If all functions in the current batch succeed, the return value is nonzero.
If not all functions in the current batch succeed, the return value is zero, indicating that at least one function returned an error.
Remarks
Batching enhances drawing performance by minimizing the amount of time needed to call GDI drawing functions that return Boolean values. The system accumulates the parameters for calls to these functions in the current batch and then calls the functions when the batch is flushed by any of the following means:
·Calling the GdiFlush function
·Reaching or exceeding the batch limit set by the GdiSetBatchLimit function
·Filling the batching buffers
·Calling any GDI function that does not return a Boolean value
The return value for GdiFlush applies only to the functions in the batch at the time GdiFlush is called. Errors that occur when the batch is flushed by any other means are never reported.
The GdiGetBatchLimit function returns the batch limit.
Note that the batch limit is maintained for each thread separately. In order to completely disable batching, call GdiSetBatchLimit(1) during the initialization of each thread.
An application should call GdiFlush before a thread goes away if there is a possibility that there are pending function calls in the graphics batch queue. The operating system does not execute such batched functions when a thread goes away.
A multithreaded application that serializes access to GDI objects with a mutex must ensure flushing the GDI batch queue by calling GdiFlush as each thread releases ownership of the GDI object. This prevents collisions of the GDI objects (device contexts, metafiles, and so on).
See Also