Transaq

СБО "Transaq" => Подсистема ATF => Topic started by: Олег on 03.07.2013, 13:37:15

Title: Про удаление таймера
Post by: Олег on 03.07.2013, 13:37:15
Сейчас смастерил пробный скрипт, в котором используется таймер.
Про Интру как-то и не вспомнил, начал сразу в боевом транзаке экспериментировать.
Сначала одна проблема вылезла, потом другая.
Короче, я несколько раз этот индикатор удалял, а потом снова кидал на то же самое окно. Интервал таймера 1 секунда (periodically).

Вопрос возможно весьма примитивный, но все-таки...
Одним словом, насколько эти таймеры "живучи",  что надо сделать, чтобы их "убить"?
Достаточно ли просто удалить данный индикатор с данного графика?

Все-таки версия боевая, поэтому не хочется, чтобы фантомные таймеры жрали ресурсы.
Title: Re: Про удаление таймера
Post by: White Noise on 04.07.2013, 06:04:06
Вы таймер через переменную делаете ?
Title: Re: Про удаление таймера
Post by: Heller on 04.07.2013, 09:28:28
Вообще таймеры убиваются каждый раз при убивании индикатора. Если надо убить раньше, то поможет функция delTimer.
Title: Re: Про удаление таймера
Post by: Олег on 04.07.2013, 11:14:22
Вы таймер через переменную делаете ?

Да.

Вообще таймеры убиваются каждый раз при убивании индикатора. Если надо убить раньше, то поможет функция delTimer.

Меня смутило следующее.

Вот такой пробный скрипт:

Code: [Select]
static X;
static timerID;

function f()
{
X = X;
}

function init()
{
  timerID = setTimer("f", 1000, TIMER_PERIODICALLY);
}

function calc()
{
line [0] = 0;
}

Несколько раз подряд добавляем и удаляем этот "индикатор" на одном и том же графике. Потом просим Транзак показать переменные ATF и он нам показывает "timerID: 4". Ну вот и сложилось впечатление, что это уже четвертый таймер, привязанный к этому графику, и причем, все остальные (3 штуки) живы-здоровы и функционируют в фантомном режиме.
Title: Re: Про удаление таймера
Post by: bugem on 04.07.2013, 15:48:38
2 Олег
Не переживайте запускайте сколько угодно. У меня на боевой системе каждые 15 мин запускается по три таймера, ради интереса сейчас в логах посмотрел результат на вечер
Quote
03.07.13;23:45:08;Set_Activation_Delay: FillAndSetStopOrder; delay: 500; timerID:142
Ни какого торможения не замечено (компутер немощный: Р4-1,8Ггц, 500Мб), работает пара Транзаков и Интра одновременно и еще несколько прикладных программ
Title: Re: Про удаление таймера
Post by: White Noise on 04.07.2013, 17:08:51
timerID:142  - это не количество таймеров на графике, это количество таймеров во всей системе, а т.е. во всем транзаке,  - может быть открыто тысячи окон, и на каждом окне работать по 50 таймеров,...и у каждого таймера (именно для системы транзак ) просто должен быть свой единственный идентификатор (опять же на протяжении сесси открытого транзака). Для чего ? для того чтобы не сбиться ибо событие таймера системное, синхронное ,.... А ведь графики могут и закрываться, новые открываться, таймеры добавляться,...и что получается - как за ними уследишь ? причем идентификатор - это не имя которое присвоено, а именно то порядковое число которое присвоено в определенный момент времени, по шкале 1.2.3.4.5.6.7.8.9.10.11.12....
Title: Re: Про удаление таймера
Post by: Олег on 14.07.2013, 21:24:08
bugem и White Noise,  спасибо за разъяснение.

Раз Heller не поправляет, значит, наверно, все правильно.
Title: Re: Про удаление таймера
Post by: Heller on 15.07.2013, 17:08:39
Да, всё правильно, поправлять нечего :)