Programming: Delphi
Иллюстрированный самоучитель по Delphi 7 для профессионалов
Локальные данные потока
Интересная проблема возникает, если в приложении будет несколько одинаковых потоков. Как избежать совместного использования одних и тех же переменных несколькими потоками? Первое, что приходит на ум, — добавить и использовать поля объекта — потомка
TThread, которые можно добавить при его создании. Каждый поток соответствует отдельному экземпляру объекта, и их данные пересекаться не будут. (Кстати, это одно из больших удобств использования класса
TThread.) Но есть функции API, которые знать не знают об объектах Delphi и их полях и свойствах. Для поддержки разделения данных между потоками на нижнем уровне в язык Object Pascal введена специальная директива —
threadvar, которая отличается от директивы описания переменных var тем, что применяется только к локальным данным потока. Следующее описание:
означает, что переменная datal будет использоваться всеми потоками данного приложения, а переменная
data2 будет у каждого потока своя.
Назад | Оглавление | Вперёд
При перепечатке любого материала
с сайта, видимая ссылка на источник www.warayg.narod.ru
и все имена, ссылки авторов обязательны.
© 2005
|