Page 1 of 1

Глобальные переменные, что это за зверь?

Posted: 2008-09-27 07:16:26
by Millerbeer
Если скрипт обьявил глобальную переменную и присвоил ей значение, значение этой переменной могут считывать и модифицировать все функции данного скрипта. А параллельно запущенные скрипты тоже имеют к ней доступ? И если инициализировавший переменную скрипт уже завершился, переменная "живёт" дальше? После перезапуска инжекта переменная всё равно "живёт"? И как её уничтожить? Я так понял, просто присвоить ей значение пустая строка не поможет, всё равно сохранится её дискриптор и будет выделена под неё память. Если я правильно понял, это переменные класса глобал, так можнт её можно деструктором удолбать, типа:

Code: Select all

переменная.Destroy()
Вот собсно, что интересует, просвятите, кто знает?

Posted: 2008-09-27 12:07:12
by Grin
смотря что ты под разумеваешь под глобальной переменной, в инжекте много вариантов глобальности:) Даже SetGlobal и SetEasyUO различаются по времяни жизни переменной:) SetGlobal умрет только после перезагрузки инжекта.

Posted: 2008-09-27 12:55:39
by Millerbeer
Про переменные изи Деструктор обьяснял, что они хранятся в ветке реестра для EasyUO, соответственно, переменные изи ,по идее, сохраняются даже при перезагрузке инжи. А Set Get Global значит живут только текущий сеанс и при перезапуске теряются. Ясно, спасибо. А параллельно запущенные скрипты имеют доступ к одной глобальной переменной?

Posted: 2008-09-27 13:08:49
by Grin
:) на то они иглобальные так видны разным "скриптам"%)

Posted: 2008-09-27 13:48:36
by Millerbeer
Ага, спасибо за информацию.