46
Предложения / Подпрограмма работающая как прерывание
« on: October 17, 2013, 10:01:07 AM »
Небольшое отступление...
Всегда реально не хватало некоторых возможностей. О них периодически задумывался, но в предложения никогда не писал. Не хотелось грузить своими просьбами. В новой версии часть из них реализовали. Такие как:
#logfile
#autorun
DIALOGBOX
Дробный WAIT
ну и конечно массивы
Хотя последние я ожидал многомерными и с поддержкой строковых данных, что бы там Johnny не говорил про условности многомерности...
Про компиляцию в exe (не с целью защиты) пока помолчу.
Так вот. Очень не хватает чего-то типа прерываний. В основном для стабилизации работы и исключения зацикливаний из-за помех которые невозможно учесть.
Можно сделать наподобие:
где name - имя вызываемой подпрограммы,
period - регулярность вызова в мс
после данного оператора начинается регулярный вызов указанной подпрограммы через заданный промежуток времени.
В подпрограмме можно будет проверять приложение на падение или на сбой скрипта.
Или выводить счётчик/таймер параллельно работе основной программы.
Время от времени "следить" за каким нибудь второстепенным, но постоянным элементом.
Или выводить в лог номера строк скрипта (кстати не работает почему-то) для последующего анализа и отладки.
Можно ещё много применений найти.
Естественно "тяжесть" и частота вызываемой подпрограммы на совести и усмотрении создающего и в зависимости от задачи.
Просто устал распихивать GOSUB(проверка) по скрипту для отлавливания левых окон или непредвиденных ситуаций.
При этом скрипт начинает плохо читаться. Да и все нужные места не учтёшь.
Всегда реально не хватало некоторых возможностей. О них периодически задумывался, но в предложения никогда не писал. Не хотелось грузить своими просьбами. В новой версии часть из них реализовали. Такие как:
#logfile
#autorun
DIALOGBOX
Дробный WAIT
ну и конечно массивы
Хотя последние я ожидал многомерными и с поддержкой строковых данных, что бы там Johnny не говорил про условности многомерности...
Про компиляцию в exe (не с целью защиты) пока помолчу.
Так вот. Очень не хватает чего-то типа прерываний. В основном для стабилизации работы и исключения зацикливаний из-за помех которые невозможно учесть.
Можно сделать наподобие:
Code: [Select]
BREAKGOSUB(name, period)
или например
REGULARSUB(name, period)
где name - имя вызываемой подпрограммы,
period - регулярность вызова в мс
после данного оператора начинается регулярный вызов указанной подпрограммы через заданный промежуток времени.
Code: [Select]
STOPREGULARSUB(name) - этим оператором останавливать преведущую функцию.
Имена условны.В подпрограмме можно будет проверять приложение на падение или на сбой скрипта.
Или выводить счётчик/таймер параллельно работе основной программы.
Время от времени "следить" за каким нибудь второстепенным, но постоянным элементом.
Или выводить в лог номера строк скрипта (кстати не работает почему-то) для последующего анализа и отладки.
Можно ещё много применений найти.
Естественно "тяжесть" и частота вызываемой подпрограммы на совести и усмотрении создающего и в зависимости от задачи.
Просто устал распихивать GOSUB(проверка) по скрипту для отлавливания левых окон или непредвиденных ситуаций.
При этом скрипт начинает плохо читаться. Да и все нужные места не учтёшь.