Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Очень точный таймер / 4 сообщений из 4, страница 1 из 1
21.08.2006, 19:07
    #33933153
Т Г В
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Очень точный таймер
Помогите пожалуйста. Мне нужно сделать очень точный таймер. Стандартный не подойдет - если комп тормознет, то и показания будут неточными.
Я слышал что для этого есть какая-то функция WinAPI, но я не знаю какая.
...
Рейтинг: 0 / 0
21.08.2006, 22:10
    #33933343
Aklin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Очень точный таймер
timer подойдет?
и используй почаще Doevents
...
Рейтинг: 0 / 0
22.08.2006, 09:12
    #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
22.08.2006, 11:59
    #33934141
Бенедикт
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Очень точный таймер
Т Г В,
Стандартные таймеры и waitable таймеры срабатывают по границе кванта потока, т. е. их обычная точность 10-20 мс. Если нужна бОльшая точность, следует использовать multimedia таймеры (см. в MSDN Library справку по функции timeSetEvent и другим time...-функциям), но тоже не увлекаться (при 5 мс VB-шная программа может работать нормально, а при 1 "уйти в себя, вернуться не скоро").

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


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