

| стрелялки |
| спорт |
| драки |
| стратегии |
| гонки |
| логические |
| азартные |
| аркады |
| эротические |
| фильмы онлайн |
| Поток обслуживания - 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() только для подстановки своего экземпляра потока обслуживания, причем код должен быть компактным и исполняться моментально. |
