Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
2-1175355079
sat
2007-03-31 19:31
2007.04.22
TChart


4-1164296258
Вольный Стрелок
2006-11-23 18:37
2007.04.22
CreateProcess консольной программы


2-1175339108
Xmen
2007-03-31 15:05
2007.04.22
QuickReport


2-1175605485
FIL-23
2007-04-03 17:04
2007.04.22
Как в вордоский документ вставить код программы?


1-1172341037
Kolan
2007-02-24 21:17
2007.04.22
Code template в BDS 2006





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