Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/18: Рейтинг темы: голосов - 18, средняя оценка - 4.78
Серж

Пример использования CreateWaitableTimer

10.04.2008, 15:07. Показов 3595. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Ищу примеры использования следующих API:
CreateWaitableTimer
SetWaitableTimer
CancelWaitableTimer
Подскажете, кто в курсе!
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
10.04.2008, 15:07
Ответы с готовыми решениями:

Пример использования CoolBar
Ñêèíüòå êòî-ëèáî ïðèìåð èñïîëüçîâàíèÿ CoolBar

Пример использования Docking controls на VB
Уважаемые! Помогите отыскать пример сабжа. Или в кратце раскажите общий принцип работы. Заранее благодарен.

Пример использования Seek в DataEnvironment
Нужно пример: Seek в DataEnvironment

9
0 / 0 / 0
Регистрация: 20.02.2008
Сообщений: 181
10.04.2008, 18:06
Declare Function WaitForSingleObject Lib 'kernel32' (ByVal hHandle As Long, ByVal dwMilliseconds As Long) As Long
Declare Function CreateEvent Lib 'kernel32' Alias 'CreateEventA' (ByVal lpEventAttributes As Long, ByVal bManualReset As Long, ByVal bInitialState As Long, ByVal lpName As String) As Long
Declare Function CloseHandle Lib 'kernel32' (ByVal hObject As Long) As Long
Declare Function PulseEvent Lib 'kernel32' (ByVal hEvent As Long) As Long
Declare Function WaitForMultipleObjects Lib 'kernel32' (ByVal nCount As Long, lpHandles As Long, ByVal bWaitAll As Long, ByVal dwMilliseconds As Long) As Long

Public Const WAIT_FAILED = -1&
Public Const WAIT_OBJECT_0 = 0
Public Const WAIT_ABANDONED = &H80&
Public Const WAIT_ABANDONED_0 = &H80&
Public Const WAIT_TIMEOUT = &H102&
Public Const WAIT_IO_COMPLETION = &HC0&
Public Const STILL_ACTIVE = &H103&
Public Const INFINITE = -1&

Позвольте узнать - почему именно эти ?
А эти варианты неподходят ?
do-GetTickCount-loop
SetTimer/KillTimer
SetTimerEvent/KillTimerEvent
0
Серж
10.04.2008, 22:22
CreateTimer
SetTimer
KillTimer

Чем же они плохи?

1.Cообщение WM_TIMER имеет наименьший приоритет и принимается только когда в очереди потока нет других сообщений.
2.Кроме того, повторные сообщения WM_TIMER от того же таймера уничтожаются, если в очереди еще есть необработанное такое же. Все это приводит к потере тиков таймера.
3.Нельзя сделать так, чтобы моменты срабатывания были привязаны к системному времени (были синхронны с ним), т.е. чтобы таймер тикал в определенные часы, минуты, секунды. Он обязательно будет 'уплывать'.
4.Дискретность временного интервала оставляет желать лучшего. В Win9x она составляет 55 мс. Но даже в NT/2000 интервал квантуется не менее чем по 10 мс.

Альтернатива этим таймерам - это ожидаемые таймера, реализованные в ядре и поэтому менее тяжеловесные и более надежные. Они не посылают сообщений и должны ожидаться с помощью функции WaitForSingleObject или подобной. К ним имеют прямое отношение следующие функции API:

CreateWaitableTimer
SetWaitableTimer
CancelWaitableTimer

Эти функции реализованы в Windows NT/2000.
Очень хочется иметь реальные таймеры (ну почти)!
Кстати пишушим под NT(2000) в некоторых источниках рекомендуют использовать функции CreateTimer,NtSetTimer,NtCancelTimer,NtO penTimer представленные в NtDll.dll (но к сожалению не документированые).
0 / 0 / 0
Регистрация: 20.02.2008
Сообщений: 181
13.04.2008, 11:18
хм-м,
я использую timeSetEvent/timeKillEvent из winmm - точность 1мс вполне устраивает для большинства (вернее, для всех на VB) задач.
0
Серж
14.04.2008, 07:17
Если не затруднит, можно взглянуть на пример использования timeSetEvent/timeKillEvent?
0 / 0 / 0
Регистрация: 20.02.2008
Сообщений: 181
14.04.2008, 12:14
vbasic.f2s.com (раздел System related)

С первого взгляда кажется заморочено, но когда разобрался всё на свои места встало.
Единственное что в примере не предусмотрено - Stack overflow при выполнении длительной операции после сраб. таймера (пока я понял в чём проблема ... если использовать дебуг то VB моментальго GPF выдаёт)
т.е. TimerEvent->LongUserOperation (больше чем интервал). Пока выполняется LongUserOperation срабатывает новый TimerEvent, и ещё, и ещё ... короче - здравствуй Windows

P.S. От необходимой TimerMM.lib тоже можно избавится (не только мы ленимся ).
0
0 / 0 / 0
Регистрация: 22.10.2007
Сообщений: 44
14.04.2008, 13:02
А выставить SetProceessPriority и SetThreadPriority не пробовал?
MS-овфт декларирует, что можно выставить приоритет ВЫШЕ ЖЕЛЕЗА.
0
0 / 0 / 0
Регистрация: 20.02.2008
Сообщений: 181
14.04.2008, 13:32
2SPQuick

А для ? И шо с эдаким приоритетом делать на VB ?
0
0 / 0 / 0
Регистрация: 22.10.2007
Сообщений: 44
14.04.2008, 20:04
Не на VB, блин, а на WINDOWS API.
За что, все кто НЕ ЛЮБЯТ ВБ, на само деле ЛЮБЯТ ВБ!
За то чт,о API для него родной!!!!
Блин, не хочу начинать новую тему, но все С++ и Pascal говно расползучее, язык 'программировавания', бля, для домохозяек.
Выдери эти 'Декларе' из любого апи.тхт и употреби по уму.
Удачи
0
0 / 0 / 0
Регистрация: 20.02.2008
Сообщений: 181
14.04.2008, 20:36
2 SPQuick

[весело, стараясь никого не обидеть] мда-а-а, видно ты (надеюсь можно так - по-простому ) устал за день ....
[?] Чего к словам придираешся ? Если шуток не понимаешь тогда купи кота, назови его 'сержантом' и вываливай на него свою агрессию.
А если хочется поспорить о чём-то - всегда пожалуйста. Говорят извилины развивает )
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
14.04.2008, 20:36
Помогаю со студенческими работами здесь

Пример использования API - CreateDialog
есть ли у кого пример как использовать эту функцию (или что-нибудь аналогичное) в VB. Заранее, спасибо.

Плз пример использования WNetAddConnection2 на VB
Или сноску

Пример использования функции GetMenuInfo
Кто-нибудь пришлите работающий пример, который использует ф-цию API GetMenuInfo. Не могу ей воспользоваться - не возвращает ничего в...

Пример использования CoCreateInstanceEx в Visual Basic
Подскажите ссылочку или примерчик по использованию CoCreateInstanceEx в Visual Basic. Или аналогичный классик в .NET -e. Заранее...

Пример использования функции LockFile/ LockFileEx
Пожалуйста, если у кого есть пример использования функции LockFile/ LockFileEx, бросьте на мыло. Очень обяжете. И еще один вопрос. Каким...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru