powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Очень точный таймер
4 сообщений из 4, страница 1 из 1
Очень точный таймер
    #33933153
Фотография Т Г В
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Помогите пожалуйста. Мне нужно сделать очень точный таймер. Стандартный не подойдет - если комп тормознет, то и показания будут неточными.
Я слышал что для этого есть какая-то функция WinAPI, но я не знаю какая.
...
Рейтинг: 0 / 0
Очень точный таймер
    #33933343
Фотография Aklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
timer подойдет?
и используй почаще Doevents
...
Рейтинг: 0 / 0
Очень точный таймер
    #33933620
Ashton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
1. VBшная функция Timer.

2. WinAPI функции SetTimer, KillTimer.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
Private Declare Function SetTimer Lib "user32" ( _
  ByVal hwnd As Long, _
  ByVal nIDEvent As Long, _
  ByVal uElapse As Long, _
  ByVal lpTimerFunc As Long) As Long

Private Declare Function KillTimer Lib "user32" ( _
  ByVal hwnd As Long, _
  ByVal nIDEvent As Long) As Long

Private lngID As Long

Private Sub TimerProc( _
  ByVal hwnd As Long, _
  ByVal lngMsg As Long, _
  ByVal lngID As Long, _
  ByVal lngTime As Long)
    MsgBox "MyMsg."
End Sub

Public Sub StartTimer()
    lngID = SetTimer( 0 ,  0 ,  10000 , AddressOf TimerProc)
End Sub

Public Sub EndTimer()
    If lngID <>  0  Then
        KillTimer  0 , lngID
    End If
End Sub

3. WinAPI функции CreateWaitableTimer, SetWaitableTimer. Статья - How To Use SetWaitableTimer With Visual Basic .
...
Рейтинг: 0 / 0
Очень точный таймер
    #33934141
Фотография Бенедикт
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Т Г В,
Стандартные таймеры и waitable таймеры срабатывают по границе кванта потока, т. е. их обычная точность 10-20 мс. Если нужна бОльшая точность, следует использовать multimedia таймеры (см. в MSDN Library справку по функции timeSetEvent и другим time...-функциям), но тоже не увлекаться (при 5 мс VB-шная программа может работать нормально, а при 1 "уйти в себя, вернуться не скоро").

Другое дело, "если комп тормознет", то это не поможет. Насчёт точности показаний не понял - всегда есть разброс в периоде вызова таймера, надо ориентироваться на текущее время, а не на заданный период.
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Очень точный таймер
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]