Throttle / End Throttle

Takes one parameter, SlowWritePercent

Description:

The Throttle / End Throttle block lowers the current thread's priority to run only when the system has idle (unused) capacity on any CPU core.

The End Throttle command is optional. The Throttle / End Throttle block may simply wrap a section of code, or just Throttle may be used near the top of a procedure. If End Throttle is not specified, the current thread's priority will remain lowered until the thread terminates.

The optional SlowWritePercent parameter defaults to 25 if not specified and only affects database write operations that take longer than one Windows quantum time unit per record to complete, including time to execute field attributes, message handler procedures, and enforcing relationship ratios on attach. A value of 25 will cause these write operations to utilize only 25% of the time available on a single CPU thread. A value of 100 disables this behaviour while still lowering the current thread's priority.

 

Examples:

Method Action.Update(pQ)
Throttle
Pull (pQ), "ToDo.List.|Alias|Name|DueDate"
Update "ToDo.List"
End Throttle
End Method

 

Rem 'Init
Throttle 50
EndREm

Rem 'Routing
Action.Update ""
EndRem

Method Action.Update(pQ)
Pull (pQ), "ToDo.List.|Alias|Name|DueDate"
Update "ToDo.List"
End Method