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

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

потоки в Dll [D6, Win2k]


Palladin ©   (2003-01-07 22:16:00) 

Имеет ли смысл Synchronize для создания потока в динамической dll? или поток вообще в dll рекомедуется?


Digitman   (2003-01-08 16:08:00) [1]

Если конструктор объекта TThread.Create(..) вызывается впервые (абсолютно неважно где, в каком модуле приложения и в какой секции его кода) и вызов этот происходит не в осн.код.потоке процесса, то по кр.мере в Д5 метод Synchronize() без спец.принимаемых мер работать ожидаемым образом не будет


Palladin   (2003-01-08 15:46:00) [2]

по поводу "из разных опер"
по моей идее поток должен инициализироватся и запустится сразу после загрузки dll причем не по вызову из главной проги а на Initialization
и соответственно освободится в ExitProc dll

вот меня и интересовало при таком типе создания этот поток будет иметь родительский (главный) поток с которым будет synchronize или нет?

а можно про критические секции поподробней?


Слесарь Матерящийся   (2003-01-08 11:48:00) [3]

>Имеет ли смысл Synchronize для создания потока в динамической >dll? или поток вообще в dll [не] рекомедуется?

Для синхронизации доступа к общим данным для двух (трёх и т.д. ) потоков лучше использовать критичские секции.


Verg   (2003-01-08 11:16:00) [4]

Synchronize, по-моему, применяется дли синхронихации текущего потока с главным (или с тем, который создал текущий), т.е. процедура указанная в параметре Sync. будет выполнена главным потоком (т.е. в его контексте) в тот момент, когда главный поток обратиться к своей очереди сообщений. Игра идет на особенности вызова sendmessage, когда в параметре HWND указывается хендл окна созданного в контексте другого потока.

Никакого контекста dll я здесь не вижу. Это как бы "из разных опер".


Владимир   (2003-01-08 00:05:00) [5]

Synchronize применяется для временной замены главного потока приложения, в случаях когда синхронизируемый поток обращается к общим ресурсам или VCL.


Наверх

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