====== 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.