SysFn23/ru: Difference between revisions
Jump to navigation
Jump to search
(Created page with ''''Функция 23 - ожидать события с таймаутом''' ---- Если очередь сообщений пуста, ждёт появления сообщ...') |
mNo edit summary |
||
(2 intermediate revisions by 2 users not shown) | |||
Line 2: | Line 2: | ||
---- | ---- | ||
Если очередь сообщений пуста, ждёт появления сообщения в очереди, | |||
Если очередь сообщений пуста, ждёт появления сообщения в очереди, но не более указанного времени. Затем считывает сообщение из очереди. | но не более указанного времени. Затем считывает сообщение из очереди. | ||
Параметры: | Параметры: | ||
* eax = 23 - номер функции | :* eax = 23 - номер функции | ||
* ebx = таймаут (в сотых долях секунды) | :* ebx = таймаут (в сотых долях секунды) | ||
Возвращаемое значение: | Возвращаемое значение: | ||
* eax = 0 - очередь сообщений пуста | :* eax = 0 - очередь сообщений пуста | ||
* иначе eax = событие (смотри список событий) | :* иначе eax = событие ([[Ru/api/kernel#Список событий|смотри список событий]]) | ||
Замечания: | Замечания: | ||
* Учитываются только те события, которые входят в маску, устанавливаемую функцией 40. По умолчанию это события перерисовки, нажатия на клавиши и на кнопки. | :* Учитываются только те события, которые входят в маску, | ||
* Для проверки, есть ли сообщение в очереди, используйте функцию 11. Чтобы ждать сколь угодно долго, используйте функцию 10. | ::устанавливаемую [[SysFn40/ru|функцией 40]]. По умолчанию это события | ||
* Передача ebx=0 приводит к моментальному возвращению eax=0. | ::перерисовки, нажатия на клавиши и на кнопки. | ||
* При текущей реализации произойдёт немедленный возврат из функции с eax=0, если сложение ebx с текущим значением счётчика времени вызовет 32-битное переполнение. | :* Для проверки, есть ли сообщение в очереди, используйте [[SysFn11/ru|функцию 11]]. | ||
::Чтобы ждать сколь угодно долго, используйте [[SysFn10/ru|функцию 10]]. | |||
:* Передача ebx=0 приводит к моментальному возвращению eax=0. | |||
:* При текущей реализации произойдёт немедленный возврат из функции | |||
::с eax=0, если сложение ebx с текущим значением счётчика времени | |||
::вызовет 32-битное переполнение. | |||
'''Константы для регистров:''' | |||
::eax - SF_WAIT_EVENT_TIMEOUT (23) | |||
{{System_functions}} | {{System_functions}} | ||
[[Category: SysCalls]] | [[Category: SysCalls]] |
Latest revision as of 18:56, 16 January 2016
Функция 23 - ожидать события с таймаутом
Если очередь сообщений пуста, ждёт появления сообщения в очереди, но не более указанного времени. Затем считывает сообщение из очереди.
Параметры:
- eax = 23 - номер функции
- ebx = таймаут (в сотых долях секунды)
Возвращаемое значение:
- eax = 0 - очередь сообщений пуста
- иначе eax = событие (смотри список событий)
Замечания:
- Учитываются только те события, которые входят в маску,
- устанавливаемую функцией 40. По умолчанию это события
- перерисовки, нажатия на клавиши и на кнопки.
- Для проверки, есть ли сообщение в очереди, используйте функцию 11.
- Чтобы ждать сколь угодно долго, используйте функцию 10.
- Передача ebx=0 приводит к моментальному возвращению eax=0.
- При текущей реализации произойдёт немедленный возврат из функции
- с eax=0, если сложение ebx с текущим значением счётчика времени
- вызовет 32-битное переполнение.
Константы для регистров:
- eax - SF_WAIT_EVENT_TIMEOUT (23)
|