Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Системный анализ, проектирование и UML > Архитектура, Многопоточность


Автор: RinOSpro 28.10.2009, 13:27
Есть программа в ней N потоков, в цикле обращаются к DLL, и вызывают функцию.
Вот схема:
user posted image
Если что то не понятно, поясню!
Укажите пожалуйста на ошибки. Спасибо!

Автор: StepS 28.10.2009, 15:13
а зачем такая сложность? можно же просто сделать так:

Thread1 ---> Object1.Process();
Thread2 ---> Object2.Process();
.....
ThreadN ---> ObjectN.Process();

По-моему так проще. Или я не понял идею?

Автор: RinOSpro 29.10.2009, 11:51
Объекты в массиве, массив в DLL smile, FHandle является индексом массива. 
Поток по индексу (FHandle) вызывает метод объекта...

Автор: StepS 29.10.2009, 14:35
Цитата

Объекты в массиве, массив в DLL smile, FHandle является индексом массива. 


диаграмму я понял smile мне интересно зачем все так сложно? Можно же создавать объект в каждом потоке и там с ним работать. Зачем объекты пихать в массив да еще и в отдельную dll-ку и потом по этому массиву бегать?
Чем не устраивает такой вариант? 

Автор: RinOSpro 30.10.2009, 09:43
Так повелось... DLL написана на С++ как обертка для одной библиотеки, оч важной, которую на Delphi не перевели еще.

Автор: StepS 30.10.2009, 12:43
ну тогда вариантов тут особо и нет smile
Это если функция Process(FHandle Integer) потокобезопасная. Если нет и там есть части, которым необходима потокобезопасность, то нужно писать обертку.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)