Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Synchronize


Страницы:   1 2 3

3APA3A ©   (2004-07-04 00:29:00) 

Что делает Synchronize? Я использую его и в общих чертах представляю что этот метод делает, но мне этого мало...


Rouse_   (2004-07-04 14:36:00) [41]

> [7] y-soft ©   (04.07.04 07:56)
А какая разница?
Во первых когда применяют Synchronize, ожидают что пока процедура не выполнится - код за ней не будет отрабатываться.
Это раз.
Ну а во вторых - не ужели ты думаешь что в то время пока отрабатывается первый PostMessage - в месте с ним отработается и второй?


y-soft   (2004-07-04 10:00:00) [42]

>Mim1 ©   (04.07.04 09:20) [8]

Так и я о том же, только вот слишком часто люди не понимают, как это работает, и задают вопрос: почему безбожно тормозит? :)


Mim1   (2004-07-04 09:20:00) [43]


> [7] y-soft ©   (04.07.04 07:56)

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


y-soft   (2004-07-04 07:56:00) [44]

Во многих случаях вместо пресловутого Synchronize гораздо выгоднее написать свою реализацию subj на основе PostMessage

Резон? SendMessage не возвращает управление до тех пор, пока посланное сообщение не будет обработано. В результате:

a. Тормозится вызывающий поток
b. Тормозятся все потоки, вызовы которых стоят в очереди этого потока
c. Тормозятся все потоки, вызовы которых стоят в очереди потока, который обрабатывает сообщение

Т.е. при слишком частом использовании Syncronize теряются все преимущества многопоточности


Григорьев Антон   (2004-07-04 07:02:00) [45]

Synchronize через SendMessage передаёт управление основному потоку. При обработке этого сообщения основной поток выполняет указанную процедуру.


3APA3A   (2004-07-04 01:21:00) [46]

Уговорили... =)


3APA3A   (2004-07-04 01:21:00) [47]

Ok...


jack128   (2004-07-04 00:55:00) [48]


> ведь основной поток выполняется постоянно, хотя бы тот же
> цикл обработки сообщений.
ну так посмотри исходники и увидешь ;-)


3APA3A   (2004-07-04 00:46:00) [49]

Кое что прояснилось, но не до конца - ведь основной поток выполняется постоянно, хотя бы тот же цикл обработки сообщений.


DrPass   (2004-07-04 00:34:00) [50]

Синхронизирует какой-либо метод с основным потоком - так, чтобы он не выполнялся параллельно с кодом основного потока.


Страницы:   1 2 3

Наверх

Титульная страница Поиск, карта сайта Написать письмо