.
Tuesday 22nd of May 2012    

Информация

Счетчики

Голосование

Лучшая марка телефона
 

Реклама

фильмы онлайн

фильмы онлайн


Поток обслуживания - TClientSocketThread
загрузка...

Поток обслуживания является наследником класса TThread. В первую очередь он служит связующим звеном между потоком управления, доступным из свойства компонента TTCPServer:

property ServerSocketThread: TServerSocketThread;

и экземпляром клиентского сокета, в интересах которого он трудится:

property ClientSocket: TCustomIPClient;

Перед созданием нового потока обслуживания у сервера TCustomTCPServer возникает событие:

property OnGetThread: TGetThreadEvent;

type TGetThreadEvent = procedure (Sender: TObject; var ClientSocketThread: TClientSocketThread) of object;

При желании в этот момент вместо потока по умолчанию TClientSocketThread программист может подставить собственную версию обслуживающего потока. Единственное условие: это должен быть потомок класса TClientSocketThread.

На самом деле событие OnGetThread() инициирует не сервер, а поток управления TServerSocketThread, и только потом делегирует его серверу - компоненту-потомку TCustomTCPServer. Это весьма существенное замечание и вот почему: потоки требуют тщательной синхронизации, а в рамках события OnGetThread() неопытный программист может нагромоздить самый непредсказуемый код и в результате встретиться с абсолютно непонятными ошибками. Поэтому используйте событие OnGetThread() только для подстановки своего экземпляра потока обслуживания, причем код должен быть компактным и исполняться моментально.


загрузка...
 

Самое популярное:

bottom

карта сайта