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

Оконные таймеры работают так: они посылают в очередь сообщений сообщение WM_TIMER через заданное количество времени, обработка которого и является вызовом обработчика ожидания. Кроме того, перед тем как сообщение добавляется, система проверяет есть ли в очереди это сообщение, WM_TIMER добавляется только если его там нет.
6 Быдлокодер 80 lvl
 
10.01.12
07:12
(1), (5) Спасибо за помощь! Тема закрыта.
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший