Свойство ReturnValue

property ReturnValue: Integer;

Свойство ReturnValue позволяет узнать и установить значение, возвращаемое потоком по его завершении. Эта величина полностью определяется пользователем. По умолчанию поток возвращает ноль, но если программист может установить любую другую величину, присвоив свойству ReturnValue внутри потока любое другое значение. Другие потоки затем могут проанализировать это значение. На пример, поток может сообщить о произошедших внутри него ошибках.

Локальные данные потока

Как уже отмечалось ранее одно из основных удобств использования класса TThread, заключается в том, что каждый поток соответствует отдельному экземпляру объекта, и их данные не пересекаться, т.е. каждый поток работает со своими экземплярами переменных класса. Однако, если программист использует для работы с потоками API функции Windows то все потоки будут использовать одни и те же переменные. Для поддержки разделения данных между потоками на уровне функции работы с поттоками в язык Object Pascal введена специальная директива - threadvar, которая отличается от директивы описания переменных var тем, что применяется только к локальным данным потока.

Var

datal: Integer; threadvar

data2: Integer;

В приведенном примере переменная datal будет использоваться всеми потоками данного приложения, а переменная data2 будет у каждого потока своя.

Подводя итог описания работы с потоками в Delphi, отметим, что в данной среде программирования реализована очень удачная концепция работы с потоками с помощью класса TThread, значительно упрощающая разработку многопоточных приложений. Также у программиста остается возможность работать с потоками с помощью встроенных функций операционной системы, а при необходимости совмещать эти два подхода. Однако не следует совмещать и путать эти два понятия. С точки зрения операционной системы поток - это ее объект, при своем создании он получает дескриптор и отслеживается ОС. Объект класса TThread - это конструкция Delphi, соответствующая потоку ОС. Этот объект VCL создается до реального возникновения потока в системе и уничтожается после его исчезновения.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: