Yield subroutine
Description
Allows the Presentation Server to check and execute all pending events in the Windows Message Queue, returning when the queue is empty. This allows the system to remain responsive during a long running process.
Syntax
Call Yield( SaveVars )
Parameters
Name | Required | Description |
---|---|---|
SaveVars | No | If TRUE$ (1) then the following system variables will be saved and then restored after the Yield operation: * @Dict * @Record * @ID * @RecCount * @Rn_Counter The state of Select Cursor 0 will also be saved (via the Push_Select/Pop_Select functions) |
Returns
N/A
Errors
N/A
Remarks
Calling the Yield function during a long-running process is important for several reasons:
- It allows screen updates, so that changes to controls can be displayed. - It allows other events to fire so that the user interface remains responsive. - It allows Windows to determine that the process is not "dead" so it will refrain from displaying a "ghost" window with the "Not Responding" caption.
The Yield function is designed to be used from within "Event Context". If called outside of this context it calls the WinYield() function instead.
Example
$Insert Logical Ctr = 0 Eof = FALSE$ Loop ReadNext ID Else Eof = TRUE$ Until Eof Ctr += 1 // Update the progress bar Call Set_Property_Only( @Window : ".PRB_GASGUAGE", "VALUE", Ctr ) // Allow the progress bar to update and save the // select state while we do this Call Yield( TRUE$ ) // Check that the window is still up because the // user could have closed it during the Yield() While ( Get_Property( @Window, "HANDLE" ) ) // Do processing etc ... Repeat
See Also
Get_Property, Set_Property, Appendix A - Concatenating Properties.