Форум: "Основная";
Текущий архив: 2004.09.26;
Скачать: [xml.tar.bz2];
ВнизПотоки. Найти похожие ветки
← →
Miralex © (2004-09-14 10:20) [0]Здраствуйте мастера, интересует следующее:
Знаем мы, что в дополнительные потоки можно пихать сложный код, чтоб не тормозил основную программу и работать с ним. и тд.
Вопрос в следующем:
Есть компоненты, которые, как мне кажеться, могут спокойно жить без главной формы (и главного потока) и иногда их присутствие в дополнительном потоке даже очень необходимо. Например Timer, сокеты и другие. Можно ли их "засунуть" в отдельный доп. поток чтоб главная форма их вообще не знала? Если можно, то как? (желательно с примерчиком :-) )
Например: нам надо импользовать n дополнительных потоков. Каждый поток должен использовать свое соединение по сокетам и тд!. И например нам надо чтоб каждый дополнительный поток работал со своим соединением и главный поток - только отображал данные по доп. потоку, который мы хотим в данный момент просматривать!
Такие и аналогичные задачи часто встречаються, где необходимо реализовывать почти все в доп. потоке.
Что скажете мастера?
← →
Ozone © (2004-09-14 10:38) [1]А в чем проблема? TThread + F1
← →
Miralex © (2004-09-14 10:41) [2]
> А в чем проблема? TThread + F1
именно в етом и проблема. Delphi порезана, хелпа нету :-(
В инете искал, но не смог найти чтоб именно про ето хоть чтото говорили!
← →
Рамиль © (2004-09-14 10:47) [3]Создаешь, назначаешь обработчики. В чем проблема то?
← →
Miralex © (2004-09-14 10:53) [4]Проблема в создании!
Я знаю один способ как создать - перетащить компонент на форму!
А вот как создать и работать с компонентом в доп. потоке, не используя главный поток и форму?
← →
Рамиль © (2004-09-14 11:02) [5]
private
FComp: TSomeComponent;
...
FComp := TSomeComponent(nil);
...
FComp.Free;
← →
Рамиль © (2004-09-14 11:03) [6]
> FComp := TSomeComponent.Create(nil);
← →
TUser © (2004-09-14 11:08) [7]А вообще есть впечатление, что ты усложняешь себе жизнь. Точно ли это необходимо? Я имею в виду - отдельный поток содержать для таймера.
← →
panov © (2004-09-14 11:08) [8]>Miralex © (14.09.04 10:53) [4]
Поищи на Королевстве дельфи статью о создании объектов в RunTime.
← →
Григорьев Антон © (2004-09-14 11:20) [9]Можно их засовывать в отдельный поток, проблема только в том, что, например, TClientSocket и TTimer создают невидимые окна для того, чтобы получать и обрабатывать сообщения. И если эти окна не будут получать сообщения, события этих компонентов срабатывать не будут. Чтобы окна получали сообщения, в нити, где они созданы, нужно сделать петлю сообщений (цикл из GetMessage и DispatchMessage). Таким образом, основной код нити должен находится внутри цикла, а это не всегда удобно. Так что думайте, насколько это подходит для вашей задачи.
← →
Miralex © (2004-09-14 11:35) [10]Задача следующая:
необходимо обеспечивать соединения на различные точки!... Каждое соединение по коду идентично, но вот по данным, ясное дело различно!
На главной форме необходимо отображаться информацию по тому соединению, про которое хочет смотреть пользователь!
Ясное дело хочеться чтоб программа жила а не висела, поетому думаю засунуть каждое соединение в свой поток!
И у меня есть щас 2 варианта:
1 - n компонент на форме (сокет), каждая шлет и принимает данные (через буфер я так думаю) от конкретного потока в соответсвии: "каждому сокет соединению - свой поток"!
2 - компоненты в потоке и задача программы - прослушивать тот поток, который желает пользователь!
Посоветуйте как лучше реализовывать ето дело!
Спасибо.
← →
Digitman © (2004-09-14 11:36) [11]
> Miralex © (14.09.04 10:53) [4]
пока у тебя нет четкого понимания, что, где и как происходит в части событий, ты можешь поступить проще : работай с этими компонентами как обычно, а для обработки данных, получаемых при обработке того или иного события, создавай доп.трэд и передавай ему параметрами данные, предназначенные для фоновой обработки этим трэдом
← →
DiamondShark © (2004-09-14 11:41) [12]А зачем для соединения по сокетам использовать компоненты? По-моему, там только лишнего наворочено. Сокеты легко программируются и без компонент.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.09.26;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.073 c