Difference between revisions of "SysFn23/ru"
Jump to navigation
Jump to search
m |
m |
||
(One intermediate revision by one other user not shown) | |||
Line 2: | Line 2: | ||
---- | ---- | ||
− | + | Если очередь сообщений пуста, ждёт появления сообщения в очереди, | |
− | Если очередь сообщений пуста, ждёт появления сообщения в очереди, но не более указанного времени. Затем считывает сообщение из очереди. | + | но не более указанного времени. Затем считывает сообщение из очереди. |
Параметры: | Параметры: | ||
− | * eax = 23 - номер функции | + | :* eax = 23 - номер функции |
− | * ebx = таймаут (в сотых долях секунды) | + | :* ebx = таймаут (в сотых долях секунды) |
− | |||
Возвращаемое значение: | Возвращаемое значение: | ||
− | * eax = 0 - очередь сообщений пуста | + | :* eax = 0 - очередь сообщений пуста |
− | * иначе eax = событие ([[Ru/api/kernel#Список событий|смотри список событий]]) | + | :* иначе 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)
|