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

Вниз

Ошибочны ли мои опасения?   Найти похожие ветки 

 
gosha73   (2007-02-03 20:44) [0]

Здравствуйте уважаемые.
Подскажите мне пожалуйста ответ на вопрос:
Пишу программу, которая также подгружает дллку. В дллке есть таймер и время от времени он срабатывает и вызывает одну из процедур интерфейса в основной программе. И вот рассматриваю такой момент. Сработал тамер в дллке и соответсвенно длл-ка вызвала функцию в основной программе. А основная программа в этот момент выполняет какой-либо цикл в одной из своих процедур. Хочется понять, что произойдет. Программа отреагирует на событие только закончив весь цикл, или произойдет какая-либо ошибка? Или же это событие встанет в очередь, т.е. если я правильно понимаю в стёке окажется и будет ждать обработки? Это только мое представление, оно скорее всего ошибочное, но хочу удостоверится спросив у вас.
Спасибо друзья.


 
Zeqfreed ©   (2007-02-03 20:52) [1]

Как реализован таймер?


 
gosha73   (2007-02-03 21:00) [2]

Через обычный TTimer.
Когда он срабатывает, то вызывается интерфейсная процедура основной программы. Я боюсь, что события могут пропадать или это станет причиной нестабильной работы программы.


 
Zeqfreed ©   (2007-02-03 21:18) [3]

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


 
gosha73   (2007-02-03 21:23) [4]

А если TTimer не принадлежит форме? У него owner = nil при его создании в длл.


 
Zeqfreed ©   (2007-02-03 21:36) [5]

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


 
gosha73   (2007-02-03 21:41) [6]

Хм, ну да, в принципе логично.
Большое спасибо.


 
Loginov Dmitry ©   (2007-02-04 00:30) [7]

> или произойдет какая-либо ошибка?


А с чего ей происходить? TTimer который в dll-ке работает в основном потоке. Пока не отработает одна процедура, другая работать не начнет. Кстати к сведению: TTimer отсчитывает время простоя основного потока. Как только время простоя оказалось равным, к примеру одной секунды, произойдет вызов обработчика OnTimer.


 
Anatoly Podgoretsky ©   (2007-02-04 00:38) [8]

> Loginov Dmitry  (04.02.2007 00:30:07)  [7]

Таймер никаких простоев не считает, у него другая задача выдать управление по окончанию интервала, хоть компьютерный таймер, хоть кухонный.


 
Loginov Dmitry ©   (2007-02-04 00:44) [9]

> у него другая задача выдать управление по окончанию интервала


по окончанию интервала простоя.


 
gosha73   (2007-02-04 01:44) [10]

Да ребята, спасибо, врубился. У меня же действительно однопоточная программа. Меня смущало, что мало ли, у exe и dll разные менеджеры памяти и свои TApplication, это меня тоже смущало.


 
Германн ©   (2007-02-04 01:49) [11]


> Loginov Dmitry ©   (04.02.07 00:44) [9]
>
> > у него другая задача выдать управление по окончанию интервала
>
>
> по окончанию интервала простоя.
>

Какой ещё "интервал простоя"? Ты куда-то не об том молвишь. :)


 
Loginov Dmitry ©   (2007-02-04 09:58) [12]

> Какой ещё "интервал простоя"? Ты куда-то не об том молвишь.


Выражаюсь тупым языком для простоты понимания :))

Вообще наверно так получается: система кидает в цикл обработки событие о тике таймера только когда основной поток начинает простаивать.

А вообще хэлп читайте! :)))


 
Anatoly Podgoretsky ©   (2007-02-04 11:19) [13]

Не хочешь сам почитать?


 
Anatoly Podgoretsky ©   (2007-02-04 11:21) [14]


> Меня смущало, что мало ли, у exe и dll разные менеджеры
> памяти и свои TApplication, это меня тоже смущало.

А так оно и есть, разные, да еще и RTTI свое



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

Текущий архив: 2007.02.25;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.029 c
15-1170451847
votija
2007-02-03 00:30
2007.02.25
SQL файла и PHP


2-1170522268
werb
2007-02-03 20:04
2007.02.25
Как заменить слово целиком


2-1170943151
Vremenniy
2007-02-08 16:59
2007.02.25
Проблемы со стеком


15-1170265176
Kerk
2007-01-31 20:39
2007.02.25
Жить сегодняшним днем


8-1148858988
452
2006-05-29 03:29
2007.02.25
Создание видео файлов (avi,vob,wmv,mpeg4)