Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > VB6 > Временные задержки в VB6


Автор: UjinMix 17.3.2006, 18:41
Попробовал выяснить,корректно ли работает Sleep.Написал кусок программы.Ошибок вроде нет,но результаты озадачили.К корректному выполнению Sleep даже близко не лежит!Помогите!Задержки нужны меньше 1ms.В крайнем случае =1ms.
Код

Option Explicit
Private Declare Sub sleep Lib "kernel32" Alias "Sleep" (ByVal dwMilliseconds As Long)
Private n As Single
Private start As Single
Private finish As Single
Private i As Single

Private Sub Command1_Click()
start = Timer
Text1.Text = start
For i = 1 To 100           
             sleep 1
 Next i 
finish = Timer
Text2.Text = finish
Text3.Text = finish - start
End Sub
При i =100 задержка получается ~ 1 сек. а должна 0.1 Sleep на параметр не реагирует.
Прошу разъяснить на ########.Работаю под ХР
С благодарностью,Евгений.
Модератор: Пользуйтесь тегами "код"!

Автор: cardinal 17.3.2006, 18:53
Цитата(UjinMix @ 17.3.2006, 16:41 Найти цитируемый пост)
При i =100 задержка получается ~ 1 сек. а должна 0.1 Sleep на параметр не реагирует.

Зачем такая задержка?

Автор: Akina 17.3.2006, 21:44
Sleep - это задержка синхронизации, а не отсчет времени.



Автор: Velin 20.3.2006, 20:01
2UjinMix, это просто не возможно в пользовательском режиме. Функция Sleep наиболее точная, но даже она не гарантирует тот факт, что поток будет задержан именно на это время.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)