Спецификатор внутреннего типа Shared.
Для получения доступа к переменной внутри процедуры, объявленной в другом потоке, применяется оператор Shared.
- string$="string" ;задать значение переменной
- Procedure String()
- Shared string$ ;предоставить доступ к переменной внутри процедуры
- Debug string$ ;теперь переменная string$ доступна и в процедуре
- string$="changed string" ;присвоить переменной новое значение
- EndProcedure
- Debug string$
- String()
- Debug string$ ;вывод измененного процедурой значения переменной
Изменив значение переменной в процедуре, изменится её значение и в основном потоке и в других процедурах с предоставленным к ней доступом, так как при использовании этих переменных не создается новый экземпляр в памяти, а используется ранее объявленный, закрепленный за переменной основного потока.
Применение оператора Shared допускается только внутри процедур, доступ предоставляется только к переменным основного потока и только до первого вызова переменной внутри процедуры, к которой необходимо открыть доступ. Следующий пример вызовет ошибку, потому что единожды вызванная переменная string$ уже имеет новый экземпляр в памяти, отличный от экземпляра переменной основного потока.
- string$="string" ;задать значение переменной
- Procedure String()
- Debug string$ ;единожды вызванная переменная string$
- Shared string$ ;предоставить доступ к переменной невозможно
- EndProcedure
- String()
Все примеры написаны и проверены на языке высокого уровня PureBasic v4.31.
Дата составления 14 июля 2009 г.
©Copyright LOMASM - Информационные технологии. Все права защищены. Редактирование и публикация материала только с разрешения автора.
lomasm.ru