Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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.034 c
14-1094231085
Кирилл
2004-09-03 21:04
2004.09.26
Смертная казнь


14-1094741251
Копир
2004-09-09 18:47
2004.09.26
Эй, иногородние, скоро Вас в Москву не пустят.


4-1092644424
Dmitry_K
2004-08-16 12:20
2004.09.26
GetSaveFileName


1-1095001534
TriX
2004-09-12 19:05
2004.09.26
ListBox ?


14-1093638522
ИМХО
2004-08-28 00:28
2004.09.26
Просмотрщик дайджестов этого форума (в новом формате)





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский