0
Быдлокодер 80 lvl
10.01.12
✎
06:51
|
Доброго времени суток!
Сразу хочу сказать, что в ЖКК ответа не нашел, поэтому нужна Ваша помощь. Предположим, есть некая форма. У нее подключен обработчик ожидания, который раз в минуту выполняет определенную процедуру. Есть кнопка на форме, которая обрабатывается другой процедурой. Собственно, вопросы:
1) Во время исполнения обработчика ожидания пользователь нажал на кнопку. Я правильно понимаю, что система начнет обрабатывать нажатие кнопки только после того, как закончит исполняться обработчик ожидания?
2) Во время работы процедуры, исполняемой по нажатию кнопки (допустим, она работает 3 секунды) подошло время исполнения обработчика ожидания. Что делает система? Тоже ждет, пока отработает до конца процедура кнопки? И что происходит с таймером обработчика ожидания - он смещается на время ожидания?
|
|
5
DmitrO
10.01.12
✎
07:11
|
(4)ну конечно, все происходит через очередь сообщений, последовательно. Любой ввод от пользователя (клавиатура, мышь) - это все соответствующие сообщения в очередь сообщений.
Оконные таймеры работают так: они посылают в очередь сообщений сообщение WM_TIMER через заданное количество времени, обработка которого и является вызовом обработчика ожидания. Кроме того, перед тем как сообщение добавляется, система проверяет есть ли в очереди это сообщение, WM_TIMER добавляется только если его там нет.
|
|