GdiFlush
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
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