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

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.045 c
15-1170419959
Observer
2007-02-02 15:39
2007.02.25
Загрузка


9-1144640430
Ландграф Павел
2006-04-10 07:40
2007.02.25
поиск пути не по клеткам (массив из rect)


2-1170273176
valwin
2007-01-31 22:52
2007.02.25
Отрисовка маленького примитива на канве с учётом угла поворота!


15-1170402730
Empleado
2007-02-02 10:52
2007.02.25
Всех с Днем Сурка!


1-1167296388
ancot
2006-12-28 11:59
2007.02.25
Коллекции (TCollection)





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