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

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

Хочу подгружать dll-ки так, чтобы выполняли параллельную работу [D6]


Alex_LG2 ©   (2002-05-21 14:48:00) 

Суть в том, что программа должна выполнять несколько отдельных процедур одновременно, так, чтобы они не мешали одна другой. Тут всё ясно, скажете вы: создавай потоки. Так. Но ради экономии памяти (эти процедуры выполняются не всё время) они (процедуры) распределены у меня по длл-кам. Так вот КАК лучше сделать: в программе создавать отдельные потоки и в них загружать(динамически)эти длл, или потоки создавать в самих длл? Или же просто создавать формы в этих длл, и эти формы сами собой :) будут работать уже в разных потоках? Возможно, вопрос и простой на самом деле, но я уже здесь совсем запутался.
И ещё: что, если вот такая длл вызывает в свою очередь следующую подобным же образом? (хотя это уже вторичный вопрос)


Fellomena   (2002-05-21 16:31:00) [1]

Если процедуры, которые находятся в dll используются программой часто, то лучше подключить dll статически, тогда ты избавишься от ненужных накладных расходов на загрузку и освобождение dll каждый раз, когда необходимо выполнить ту или иную ф-ию или процедуру из этой dll.
А сами эти процедуры уже выполняй в различных потоках.
Imho, это оптимальное решение в данной ситуации.


Digitman   (2002-05-21 15:30:00) [2]

При чем здесь формы ?
Ты же речь ведешь об организации параллельных вычислений, а не о визуализации их параметров/результатов (для чего, собственно, в первую очередь и предназначены формы) !
Разницы нет абсолютно никакой. Делай так, как тебе удобней и проще/наглядней с т.з. модульной организации проекта и с т.з. упрощения отладки.

Здесь гораздо важней понимать вот что. Если создание самого первого экземпляра некоего потока (объекта-наследника класса TThread) будет происходить в некоей экпортируемой DLL-ф-ции, и эта самая DLL-ф-ция, в свою очередь, будет вызвана из доп.потока вызывающего хост-процесса, то метод Synchronize() в ряде случаев не позволит обеспечить безопасную работу с виз.объектами VCL.


Наверх

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