Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.04.22;
Скачать: CL | DM;

Вниз

Ищу компоненту 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;
Скачать: CL | DM;

Наверх




Память: 0.55 MB
Время: 0.071 c
2-1175582760
tytus
2007-04-03 10:46
2007.04.22
Удаление записей по критерию


15-1174050490
Rule
2007-03-16 16:08
2007.04.22
УРАААААААААА, я купил машину :-)))


15-1174813695
TUser
2007-03-25 13:08
2007.04.22
А у Путина есть мобильник?


15-1174934405
Kolan
2007-03-26 22:40
2007.04.22
«Расстояние Левенштейна», поясните чуть-чуть&#133


3-1170353899
Константинов
2007-02-01 21:18
2007.04.22
Как создать пустую базу MS Access?