Системный таймер
Объект sys. предоставляет событие таймера - on_sys_timer, - которое генерируется периодически. Период зависит от платформы. Если у платформы нет свойства sys.onsystimerperiod, период фиксирован и равен 0,5 секунды. Если платформа поддерживает это свойство, то 0,5 секунды - период по умолчанию, и программа может его изменить.
Если в вашем ПО есть периодические задачи, их код можно поместить в обработчик события on_sys_timer. Учтите: сгенерированное событие, как и все остальные, попадает в очередь и ждёт обработки. Поэтому не стоит рассчитывать на высокую точность периода, с которым вызывается обработчик on_sys_timer. Можно лишь рассчитывать, что в среднем это событие будет приходить каждые 0,5 секунды.
Есть и свойство sys.timercount (только чтение). Счётчик таймера - свободно идущий счётчик, который обнуляется при включении питания устройства и увеличивается каждые 0,5 секунды. Свойство sys.timercount удобно для определения прошедшего времени, например при ожидании чего-либо.
Пример. Допустим, вы ждёте поступления данных по последовательному порту, но готовы ждать не дольше 10 секунд:
dim w as word
...
...
w=sys.timecount 'memorize time count at the beginning of waiting for serial data
while ser.rxlen=0
'nope, no data yet, do we still have time?
if sys.timercount-w>20 then goto enough_waiting 'we quit after 10 seconds
doevents 'polite waiting includes this
wend
...
Этот пример не образец лучшего стиля программирования. Вообще говоря, так писать не стоит, но иногда без ожидания в цикле не обойтись.