Большой Воронежский Форум
» Программирование>Потоки в Delphi
Rock87 15:13 30.05.2007
Надеюсь на помощь в решении следующего вопроса: Как лучше организовать многопоточность?
Сабж:
Создаю свой класс в делфи, который производит вычисления. Можно конечно сделать, чтобы поток создавался в самом приложении, где будет использоваться данный класс. Но я задался вопросом: а что если сделать поток (TThread) свойством класса? Возможно ли это? Если да, то это имхо приведет к большей универсальности.
Rock87 15:35 30.05.2007
Хотя наверно проще было бы, чтобы поток создавался методом класса.
Я уже совсем запутался.
J++ 16:59 30.05.2007
Сильно зависит от задачи, напр. ее взаимодейтсвия с интерфейсом и проч. Почти невозмжно советовать не видя общего механизма работы.

Могу только сказать:
Если приходится периодически кидать информацию во всякие GUI-шные компоненты - то поток "внутри" класса или класс-наследник потока ИМХО неудобны. Из-за необходимости синхронизироваться с главным потоком для прорисовки GUI.


Ну а если какие-то длинные вычисления и не нужно ничего показывать на экран и синхронизировать (вычислил, запихал куда-нить в файл и вывалился из потока) - то можно сгородить соотв. класс.
Rock87 17:07 30.05.2007
Спасибо. Концепция такова, что на форме много всяких едитов, стр гридов, и т.п. куда мы вводим собсно пар-ры вычислений(св-ва класса), методы вычислений - соотв-но методы класса, и все вычисления должны быть в потоке.
J++ 17:25 30.05.2007
тогда наверное лучше не извращаться и потоки отдельно, класс отдельно. тебе же наверное понадобится периодически (в ходе вычислений) чего-нить выводить юзеру на экран? если нет, то можешь по маньячить и повыкрутасничать


к тому же в Дельфе (соотв. в С++Билдере) потомки потока не слишком удобны, если что, лучше уж поток внутрь класса запихнуть
Rock87 22:11 30.05.2007
Спасибо за помощь, вроде разобрался.
Вверх