Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.06.03;
Скачать: [xml.tar.bz2];

Вниз

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

 
Alex_LG2   (2002-05-21 14:48) [0]

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


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

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

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


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

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



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

Форум: "Основная";
Текущий архив: 2002.06.03;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.007 c
1-6972
antistatic
2002-05-22 15:47
2002.06.03
Как запретить запуск копии программы?


1-6953
SaperXL
2002-05-20 22:09
2002.06.03
RichEdit


14-7159
mio
2002-04-22 17:02
2002.06.03
Длина шнурков


1-7100
Andre V.
2002-05-22 11:39
2002.06.03
Сохранить Desktop


3-6944
Vladimir N.
2002-05-08 15:25
2002.06.03
Привязка программы с БД к BDE





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский