Форум: "Начинающим";
Текущий архив: 2007.04.22;
Скачать: [xml.tar.bz2];
ВнизИщу компоненту Timer,которая умеет запускаться в отдельном потоке Найти похожие ветки
← →
Vvw (2007-03-30 16:00) [0]Были такие LMD-Tools под Delphi6, в которых есть такая компонента под. Но к сожалению, утеряны безвозвратно :(
Подскажите, может есть другие наборы компонент с таким Таймером и где их взять.
Заранее спасибо!
← →
Сергей М. © (2007-03-30 16:09) [1]Зачем "ее" искать ?
TTimer"ру строго фиолетово, в каком потоке его "запустят" - все потоки одинаковы).. На то они и потоки)
← →
Сергей М. © (2007-03-30 16:10) [2]И какое отношение сабж имеет к WinAPI - эт тоже не понятно
← →
Vvw (2007-03-30 16:27) [3]Сергей М. © (30.03.07 16:09)
Ну, во-первых, армянское радио бы этим не интересовалось :)
Обычный Таймер (а если их надо динамически запустить от 1 до 5 шт.) работает в главном потоке приложения. Если 2-3 таймера ждут начала выполнения своих OnTimer"ов, всё работает прекрасно. Но когда, одновременно начинают выполняться хотя бы две процедуры разных таймеров в одном потоке... Сами попробуйте. По крайней мере, главная форма приложения виснет намертво.
Какое отношение имеет к АПИ - вопрос спорный, т.к. всё, что выполняется программой, в конечном счете есть использование соответствующих ф-ций АПИ. Лично мне больше понравилось заглавие этой ветки :)
← →
Reindeer Moss Eater © (2007-03-30 16:35) [4]А зачем вообще таймер во вторичном потоке?
И что делает вторичный поток, в промежутке между тиками?
← →
Сергей М. © (2007-03-30 16:35) [5]
> Vvw (30.03.07 16:27) [3]
> Ну, во-первых, армянское радио бы этим не интересовалось
А ты, надо понимать, уполномоченный представитель оного ?)
> Обычный Таймер ..работает в главном потоке приложения
В каком его создадут, в таком он и работает. С тем же успехом. Так что не надо бабушку лохматить)
> а если их надо динамически запустить от 1 до 5 шт.
Да хоть 500 000 шт. - ничто этому не мешает)
> одновременно начинают выполняться хотя бы две процедуры
> разных таймеров в одном потоке
Этого не может быть , потому что этого не может быть никогда.
Опять же - не надо бабушку лохматить)
← →
Сергей М. © (2007-03-30 16:37) [6]
> Reindeer Moss Eater © (30.03.07 16:35) [4]
>
> А зачем вообще таймер во вторичном потоке?
Ну надо ему, понимаешь ли)
А раз надо, то ничто этому, сам понимаешь, не мешает, ДАЖЕ если речь идет о пресловутом TTimer)
← →
Vvw (2007-03-30 16:45) [7]Reindeer Moss Eater © & Сергей М. ©
> что делает вторичный поток, в промежутке между тиками
> Этого не может быть , потому что этого не может быть никогда.
> Опять же - не надо бабушку лохматить)
меня это не очень интересует :) Мне нужна компонента Timer, которая может запускаться в новом, вновь создаваемом потоке.
Повторяю: нужно это для того, чтобы не случались ситуации, когда процедуры OnTimer нескольких разных таймеров одновременно выполняются в одном потоке, т.к. это приводит к зависанию формы приложения.
Чесно говоря, мне фиолетово, как всё это работает. Умные люди написали компоненту и мне надо её пользовать, чтобы сделать прогу. Прога у меня в принципе сделана еще в 2000 году, но теперь я её взялся немножко дописать, а компоненты LMDTimer уже нет :)
← →
Сергей М. © (2007-03-30 17:00) [8]
> Vvw (30.03.07 16:45) [7]
> Мне нужна компонента Timer, которая может запускаться в
> новом, вновь создаваемом потоке
ЧТО тебе мешает проделать сие с обычным TTimer ?!
> чтобы не случались ситуации, когда процедуры OnTimer нескольких
> разных таймеров одновременно выполняются в одном потоке,
> т.к. это приводит к зависанию формы приложения.
Зависание приложения - это твои ошибки в 17-й строке, не более того.
Обработчики событий нескольких таймеров, созданных в одном и том же потоке, НИКОГДА не будут вызваны не выполнятся одновременно.
← →
Desdechado © (2007-03-30 19:49) [9]Развод. Красноречивое имя компонента LMDTimer
← →
Belorus © (2007-03-30 23:21) [10]Просто стандартный TTimer - это слишком банально.. Он много где используется и автору такой подход не нравится... Нужна некоторая уникальность проекта... Чтобы даже таймер был от Кутюр...
Посоветуйте же ему что нибудь...
← →
RASkov (2007-03-31 00:56) [11]> Посоветуйте же ему что нибудь...
ТRxTimerList....
← →
Германн © (2007-03-31 02:25) [12]
> Desdechado © (30.03.07 19:49) [9]
>
> Развод. Красноречивое имя компонента LMDTimer
>
Не скажи. LMDTools действительно существовало. Я этим не пользовался и подробностей не знаю :(
Просто автор, имхо ну никак не может "понятно" изложить проблему.
← →
sniknik © (2007-03-31 09:25) [13]> Просто автор, имхо ну никак не может "понятно" изложить проблему.
тем не менее понять его можно, он хочет чтобы его код написанный в событии таймера выполнялся в отдельном потоке... т.к. тормозит и мешает основному именно он, запущенные несколько выполняются по очереди т.к. выполняются в нем же(основном), а разбираться как вообще работает система не хочет (> "мне фиолетово, как всё это работает."), хочет чудо компонент где все за него сделают (типа чтобы писать неважно что, не заморачиваясь на всякие синхронизации, и работало чтоб все правильно...).
ну, да, хотеть не вредно. пускай себе хочет...
← →
MsGuns © (2007-03-31 17:07) [14]Удалено модератором
Примечание: Не кабак-с.
← →
Alexey (AZ) (2007-03-31 17:48) [15]А TThread поюзать? Или на винапи CreateThread и Sleep(X) * N, где X - время на "поспать", N - кол-во "поспать". Т.е. выгоднее делать меньший слип (пол секунды) но несколько раз, т.к. приложение могут закрыть и тред будет спать, а так - можно его корректно завершить.
← →
Vvw (2007-04-02 14:05) [16]Ладно, приоткрываю завесу тайны :)
"Его код" (с) sniknik ©, запускаемый отдельными таймерами, это процедуры проходов по т.н. спискам задач, где, в зависимости от ситуации возможны запуски внешних приложений в различных вариантах. Например, список задач "по ситуациям" запускает внешнее приложение и ждет его завершения, остальные списки просто запускают внешние приложения или выполняют некие контрольные действия.
Вся эта прога в чем-то похожа на навороченный scheduler. И вот когда таймеры, контроллирующие проходы по разным спискам задач, юзаю стандартные, тогда они все вместе работают в главном потоке приложения, что вызывает существенное подвисание главной формы.
И вот, пока уважаемые мастера и подмастерья изгалялись над "новичком", на руборде мне сразу подсказали пару линков, где нашелся некий ThreadedTimer, имеющий свойство весь код по событию OnTimer запускать тупо в отдельном потоке. Да еще есть настройка приоритета такого потока.
В общем, прога (в особенности ее главная форма) стала намного "отзывчивее" в процессе работы, с чем себя и поздравляю :)
Касаемо философских вопросов :) Как будто бы для написания сложных программ обязательно знать все нюансы работы ОС. Смею утверждать - ничего подобного. Нормальный, имею в виду не_фанатичный программер, вполне способен справляться с несложными прикладными задачами с помощью компонентов VCL, имея of course базовое программистское образование, некий опыт программирования, желательно SQL, понятия в БД.
Ну, и уметь правильно ставить вопрос на форуме :)
← →
Amoeba © (2007-04-02 15:01) [17]Если автору вопроса нужно LMDTools, то могу выслать.
← →
Сергей М. © (2007-04-02 15:04) [18]
> Vvw (02.04.07 14:05) [16]
Все сказанное тобой не имеет ничего общего с изначальной формулировкой вопроса (цитата):
> компоненту Timer,которая умеет запускаться в отдельном потоке
← →
Vvw (2007-04-02 16:39) [19]Amoeba © (02.04.07 15:01) [17]
> Если автору вопроса нужно LMDTools, то могу выслать.
Да, если можно.
← →
Сергей М. © (2007-04-02 17:09) [20]
> Amoeba © (02.04.07 15:01) [17]
Медвежья услуга ?)
← →
vecna © (2007-04-02 17:35) [21]
> Да хоть 500 000 шт. - ничто этому не мешает)
ет врядли... врядли винда переварит столько таймеров ;)
← →
Amoeba © (2007-04-02 19:19) [22]
> Vvw (02.04.07 16:39) [19]
>
> Amoeba © (02.04.07 15:01) [17]
>
> > Если автору вопроса нужно LMDTools, то могу выслать.
>
> Да, если можно.
>
Можно, если сообщишь куда. Давай адрес.
← →
MsGuns © (2007-04-02 23:17) [23]Бедный Vvw! - он примет смерть не от коня, а от амебы ;)))
← →
Vvw (2007-04-03 12:39) [24]Amoeba © (02.04.07 19:19) [22]
> Можно, если сообщишь куда. Давай адрес.
Дык мышь на мой ник наведи :)
MsGuns © (02.04.07 23:17) [23]
Не понял, откуда такой пессимизьм?? Это LMDTools такие страшные ?? :))
← →
Ш-К (2007-04-03 13:54) [25]Я так понимаю, нужно, чтобы обработчик таймера крутился в отдельном потоке. А у LMDTools это было оформлено в отдельном компоненте.
А если мне надо, чтобы TButton.OnClick закрутился в отдельном потоке, у LMDTools есть такие супер TButton?
← →
SergeR © (2007-04-03 16:20) [26]Лучше бы вся приблуда от MS крутилась в отдельном потоке...
← →
Сергей М. © (2007-04-03 16:26) [27]Все просто - блажь уважаемого Vvw (с) растет из абсолютного незнания ни VCL-механизмов, ни ОС-механизмов, ни концепции взаимодействия между этими двумя механизмами.
"Батонокидатель" он, одним словом)
← →
Amoeba © (2007-04-03 16:51) [28]
> Vvw (03.04.07 12:39) [24]
>
> Amoeba © (02.04.07 19:19) [22]
>
> > Можно, если сообщишь куда. Давай адрес.
>
> Дык мышь на мой ник наведи :)
>
Выслал.
← →
MsGuns © (2007-04-03 21:18) [29]>Vvw (03.04.07 12:39) [24]
>Не понял, откуда такой пессимизьм?? Это LMDTools такие страшные ?? :))
Угу, модераторы так испугались, что даже удалили мой пост, где я его охарактеризовал ;))
LMD отличаются только "красивостью", которая резко диссонирует рядом со стандартными компонентами Делфи. Кроме того, у них есть глюки, они "тяжелы". К тому же не следует забывать, что при необходимости переноса проекта на другой ПК надо тащить на него и все эти "красивости".
Короче, эта линейка сделана, ИМХО, впервую очередь для "батонокидателей" с эстетическим уклоном ;)))
>Amoeba © (03.04.07 16:51) [28]
>Выслал.
Тебя б самого выслать за "сини моря-белы горы" хотя б за то, что не только сам пользуешься ворованным, но еще и распространяешь его.
← →
Amoeba © (2007-04-04 12:21) [30]
> MsGuns © (03.04.07 21:18) [29]
>
> >Amoeba © (03.04.07 16:51) [28]
> >Выслал.
>
> Тебя б самого выслать за "сини моря-белы горы" хотя б за
> то, что не только сам пользуешься ворованным, но еще и распространяешь
> его.
>
Сам, кстати, пользуюсь официально фриварной Limited версией LMD Tools.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2007.04.22;
Скачать: [xml.tar.bz2];
Память: 0.54 MB
Время: 0.04 c