|
Серж
|
|
Пример использования CreateWaitableTimer10.04.2008, 15:07. Показов 3595. Ответов 9
Метки нет (Все метки)
Ищу примеры использования следующих API:
CreateWaitableTimer SetWaitableTimer CancelWaitableTimer Подскажете, кто в курсе! |
|
| 10.04.2008, 15:07 | |
|
Ответы с готовыми решениями:
9
Пример использования CoolBar Пример использования Docking controls на VB Пример использования Seek в DataEnvironment |
|
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
|
|
| 14.04.2008, 20:36 | |
|
Помогаю со студенческими работами здесь
10
Пример использования API - CreateDialog Плз пример использования WNetAddConnection2 на VB Пример использования функции GetMenuInfo Пример использования CoCreateInstanceEx в Visual Basic Пример использования функции LockFile/ LockFileEx Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Оптимизация кода на разграничение прав доступа к элементам формы
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
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои.
А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
|