PowerBuilder — Использование двух вызовов функции таймера в одном событии

#powerbuilder

#powerbuilder

Вопрос:

я пытаюсь использовать два вызова функции таймера в одном и том же событии один за другим, таким образом:

 // set up attempt to login again
 Timer(ll_loginDelay(set to 10), this)


// informs server that user is logged in (i.e. does a 'ping')
 Timer(ll_pingRefresh(set to 30), iw_ping)
  

Один из них пытается повторить попытку входа в телефонную систему, а другой используется для обновления отчета о том, кто входил в систему в любой момент времени. Если они установлены на один и тот же интервал, то они работают, если нет, то второй не работает. Есть идеи, почему?

Спасибо,

tg

Комментарии:

1. Где этот скрипт? т.Е. что это такое? Знание причины, если это может быть известно, в значительной степени зависит от этого. Кроме того, в большинстве случаев указание используемой вами версии PB может повлиять на точность ответов.

Ответ №1:

Не совсем понятно, почему вы получаете такое поведение, но включение невизуальных функций, таких как ping, в невизуальный объект, такой как объект синхронизации, было бы не только лучшим решением, но и может решить вашу проблему.

Удачи,

Терри

Комментарии:

1. я обнаружил, что использование объекта timer избавило меня от проблем, и все работает так, как ожидалось. что касается двух таймеров, то меньший интервал первого из них наступал на второй, не позволяя ему сработать. упоминалось, что в окне может быть только один вызов таймера, так что, возможно, в этом проблема.

2. Рад видеть, что у тебя все получилось, ТомГ. Я сам кое-что узнал, что у PB есть собственный объект синхронизации для наследования невизуальных элементов. За все годы, что я пользовался PB, я никогда не знал об этом.

Ответ №2:

У вас может быть только один таймер для определенного окна. Каждый раз, когда вы вызываете событие timer для этого окна, вы фактически сбрасываете интервал таймера. Глядя на приведенный вами код, трудно сказать, используете ли вы разные окна.

Вторая вещь, о которой следует знать, это то, что таймер окна требует, чтобы окно было открыто. Это требование кажется очевидным, но Sybase специально упомянула об этом в документации, поэтому я решил, что тоже упомяну об этом.

Онлайновая документация SyBooks для таймеров PowerScript в PB версии 12.

Онлайн-документация SyBooks Пример невизуального объекта синхронизации.. Это не самый лучший пример, потому что это подразумевает, что невизуальный — это какой-то стандартный невизуальный тип «таймера», но я не знал о невизуальном таком типе. Я думаю, что это, вероятно, обычный старый пользовательский невизуальный, в любом случае это еще один обходной путь / решение.

Удачи.