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

Вниз

findcomponent в потоке   Найти похожие ветки 

 
bagos   (2008-04-08 10:48) [0]

хотел процедуру вынести в поток, но столкнулся с проблемой. в процедуре есть строчки findcomponent и будучи в потоке компилятор ругается, контролы ищуться на form1.
как решить проблему? заранее спасибо за ответы!


 
Сергей М. ©   (2008-04-08 10:52) [1]


> компилятор ругается


Матерно ?)
Здесь даже процитировать его стыдно ?)


 
Palladin ©   (2008-04-08 10:55) [2]


> Сергей М. ©   (08.04.08 10:52) [1]

аффтар видимо считает что FindComponent - это вовсе не метод TComponent, а какая нибудь функция из System или SysUtils :)


 
Kolan ©   (2008-04-08 10:56) [3]

> Матерно ?)

Наверняка. :)
Автор, не трогай VCL из доп потоков.


 
ЮЮ ©   (2008-04-08 10:56) [4]

> процедуре есть строчки findcomponent

А должны быть не строчки, а методы определенных классов.

З.Ы. Сколько же ты компонентов на форму накидал, что доп.поток потребовался, чтобы что-то нужнок найти? :)


 
Игорь Шевченко ©   (2008-04-08 11:09) [5]


> Автор, не трогай VCL из доп потоков.


Аргументы будут ?

Развелось wannabee - куда ни плюнь, всяко попадешь, да еще и не один раз.


 
Kolan ©   (2008-04-08 11:30) [6]

> Аргументы будут ?

Будут. Большинство из них не потоко безопасные, о чем ты прекрасно знаешь.

> Развелось wannabee — куда ни плюнь, всяко попадешь, да еще
> и не один раз.

Игорь, пожалуйста, не переходи на личности. А то я тебя пошлю, а ты меня забанишь, а это будет не честно. Я, если ты не заметил, такого себе не позволяю. И общаюсь только по поводу сабжа ветки (любой). В отличае от некоторых.


 
Игорь Шевченко ©   (2008-04-08 11:33) [7]

Kolan ©   (08.04.08 11:30) [6]


> Будут. Большинство из них не потоко безопасные, о чем ты
> прекрасно знаешь.


В том числе и findcomponent ?


 
Kolan ©   (2008-04-08 11:35) [8]

> В том числе и findcomponent ?

В том числе, то, что будет делаться с найденым с помощью findcomponent компонентом (а скорее всего контролом).


 
Kolan ©   (2008-04-08 11:38) [9]

Этот совет из серии делить на 0 нельзя. Да, в старших классах рассказываю, что оказывается можно, но только рассказывать это пятиклашкам незачем. Поэтому и придумали ограничение «делить на 0 нельзя», чтоб новичков оградить от ошибок.

Так и я говорю, что «не надо трогать VCL из доп потоков» если у тебя контролы лежать на form1 и ты незнаешь что findcomponent метод&#133


 
bagos   (2008-04-08 11:38) [10]

спасибо всем за ответы, пусть и не все по теме
> аффтар видимо считает что FindComponent - это вовсе не метод
> TComponent

;)
я так вовсе не считаю, я написал что данную процедуру мне нужно вытащить в поток, и плевать где будет findcomponent, мне нужно сохранить функционал процедуры при вынесении в поток. собственно я сюда и написал чтобы мне посоветовали как это лучше сделать, о том какие траблы при работе с контролами в потоках - знаю.
конференция для "Начинающих", так что не ругайтесь на меня ;)


 
Kolan ©   (2008-04-08 11:42) [11]

Правлиьно, имхо, рассказать зачем тебе findcomponent в потоке и мы тебя, скорее всего отговорим от этой странной затеи.


 
DVM ©   (2008-04-08 11:42) [12]

FindComponent работает со списком FComponents: TList; класса TComponent. Так что если в основном потоке что-то будет создаваться/удаляться в рунтайм, то есть отличная от нуля вероятность, что из доп. потока мы нарвемся все же.


 
Palladin ©   (2008-04-08 11:46) [13]

в вопросе я вижу, что ты получил какое то сообщение об ошибки компиляции и спросил как решить эту проблему. тут вдруг оказывается что ты совета спрашивал как все это лучше сделать...

так вот: лучше, а так же правильней, это сделать в основном потоке без всяких дополнительных.

findcomponent отнюдь не потокобезопасный, никто не будет блокировать объект-контейнер от освобождения и посылки на деревню к дедушке, пока будет крутиться цикл поиска компонента в доп.потоке., а вслучае если контейнер визуальный то это вообще труба. соответственно пользоваться придется synchronize. а на кой тогда вообще поток для findcomponent?

ты бы, аффтар, описал бы задачу по подробей, может там в потоке еще чего то делается по мимо findcomponent


 
bagos   (2008-04-08 11:53) [14]

ОК, сама процедура скачивает данные с интернета, в зависимости от заданных начальных параметров время получения информации занимает иногда неприятные пару минут, прога разумеется виснет :) поток бы вывел процедуру из этой "задницы" ;)


 
DVM ©   (2008-04-08 11:54) [15]


> bagos   (08.04.08 11:53) [14]

Ну и пускай она скачивает. FindComponent то там зачем нужен?


 
bagos   (2008-04-08 11:57) [16]

капризы заказчика ;) на самом деле, в рантайме пользователь выбирает куда заносить и откуда куда данные)


 
Kolan ©   (2008-04-08 11:58) [17]

> капризы заказчика ;)

Неправда.


 
DVM ©   (2008-04-08 11:59) [18]


> bagos   (08.04.08 11:57) [16]

Так и не объяснил, зачем в потоке, который принимает данные нужен FindComponent


 
bagos   (2008-04-08 11:59) [19]


> Неправда.

по моему шутка очевидна...


 
Palladin ©   (2008-04-08 12:02) [20]


> bagos   (08.04.08 11:53) [14]

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


 
bagos   (2008-04-08 12:06) [21]

вопа,спасибо Palladin, всем спасибо!!!)) что то и вправду не в ту степь меня понесло))))
надо меньше ночью сидеть за компом...)



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

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

Наверх





Память: 0.5 MB
Время: 0.006 c
2-1207560659
AndrewG
2008-04-07 13:30
2008.05.04
InterBase 6.5


2-1207649935
Семен Кевларвестов
2008-04-08 14:18
2008.05.04
Чем можно скрыть окно ToolTip?


2-1207579151
Снежинка
2008-04-07 18:39
2008.05.04
Сортировка


2-1207510572
cyber-pilot
2008-04-06 23:36
2008.05.04
Работа с файлами


15-1205850909
Запись на диски
2008-03-18 17:35
2008.05.04
Запись на диски





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