Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.03.14;
Скачать: CL | DM;

Вниз

Synchronize   Найти похожие ветки 

 
TUser ©   (2004-03-03 20:27) [0]

Растолкуйте мне, plz, как работает Synchronize. В ТП написано, что он создает в основном потоке невидимое окно и посылает ему сообщение, в параметрах которого передает ссылку на Self, т.е. на свой объект. Не понятно следующее - это невидимое окошко должно потом вызвать метод объекта, хранимый в FMethod. Но этот самый FMethod - он private. Как может окно в контексте основного потока, которое к данному экземпляру TThread не имеет никакого отношения и описано в другом модуле вызываеть private метод.


 
Romkin ©   (2004-03-03 20:48) [1]

Delphi 5? В шестой версии немного по-другому. Окно описано в том же модуле classes и поэтому вполне может обращаться к секции private


 
TUser ©   (2004-03-03 21:42) [2]

Книга у меня по Delphi5. Сам работаю на 7. Но наверное так и есть. Забавно, что Borland пишет свои коды с помощью такого "полузаконного" приема.


 
Verg ©   (2004-03-03 21:59) [3]

Ну, ну...
Стразу уж и полузаконными.
Все законно, абсолютно. Мало того, я считаю, что до D6 все еще и достаточно красиво :)

Private, public или published у методов не имеет ровно никакого отношения к контексту потока в котором они будут выполнятся.

А окно это? При чем оно тут?
Обработчик сообщения этого окна описан в том же модуле, что и класс TThread, полем которого и является FMethod, который он (обработчик) и вызывает.
В чем сомнение?


 
Verg ©   (2004-03-03 22:13) [4]


> В ТП написано, что он создает в основном потоке невидимое
> окно и посылает ему сообщение, в параметрах которого передает
> ссылку на Self, т.е.


И вот еще.
Он? Кто он? Synchronize ничего не создает.
Это окошко создается первым попавшимся конструктором TThread, а так как, принято считать, что первый же доп. поток класса TThread создается только главным, то и окно будет принадлежностью этого главного потока.
На чем, собственно, весь "фокус" данного способа синхронизации и состоит.



Страницы: 1 вся ветка

Текущий архив: 2004.03.14;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.04 c
1-43601
Denis_Visma
2004-03-03 18:21
2004.03.14
Проблемы с азмерами Image


14-43847
Sergey13
2004-02-17 09:38
2004.03.14
Глюк или фича? Копирование файлов.


14-43886
Bublik
2004-02-20 19:18
2004.03.14
Ну народ, ну помогите!!!!


14-43879
Dimchik
2004-02-20 17:19
2004.03.14
КУому нужны книги по Delphi милости просим


14-43851
Undert
2004-02-19 18:58
2004.03.14
Как в HTML сделать SpinEdit ?