Tech Tip: How to repeat method call based on interval
PRODUCT: 4D | VERSION: 18 | PLATFORM: Mac & Win
Published On: June 28, 2021
It is often useful to have a method running in the background to repeat a task based on an interval. For this example, the utility method below will beep every 5 seconds, but the duration can be adjusted accordingly based on perference.
The repeated call will only continue based on the Storage.pref.quit boolean. To stop the repeated call, simply set the quit value to True.
C_LONGINT($1;$pid) // If initial call, create new process. Otherwise repeat method call If (Count parameters=0) $pid:=New process(Current method name;0;"Beeper";1;*) Else // Create storage object with boolean to start repeat Use (Storage) Storage.pref:=New shared object Use (Storage.pref) Storage.pref.quit:=False End use End use Repeat // Your method here. BEEP used as an example BEEP DELAY PROCESS(Current process;60*5) // beep every 5 seconds Until (Process aborted | Storage.pref.quit) End if |
The repeated call will only continue based on the Storage.pref.quit boolean. To stop the repeated call, simply set the quit value to True.
Use (Storage) Use (Storage.pref) Storage.pref.quit:=True End use End use |