Время с точностью до миллисекунд
От: BonoVox  
Дата: 22.04.03 19:10
Оценка:
Здравствуйте. Проблема в следующем: составляется расписание запуска задачи. Задача должна выполняться в строго определенное время. Я использую таймер. Через несколько запусков замечаю, что выполнение задачи отстает от расписания (вероятно это связано с низким приоритетом таймера). Мне необходимо узнать текущее время с точностью до миллисекунд, возможно это и поможет идти в ногу со временем. Меня интересует, есть ли в VB, функции возвращающие подобные значения. До этого я использовал следующее выражение: Hour(Time)*3600+Minute(Time)*60+Second(Time). Заранее благодарю.
Re: Время с точностью до миллисекунд
От: volder2001  
Дата: 23.04.03 05:10
Оценка:
Здравствуйте, BonoVox, Вы писали:

BV>Здравствуйте. Проблема в следующем: составляется расписание запуска задачи. Задача должна выполняться в строго определенное время. Я использую таймер. Через несколько запусков замечаю, что выполнение задачи отстает от расписания (вероятно это связано с низким приоритетом таймера). Мне необходимо узнать текущее время с точностью до миллисекунд, возможно это и поможет идти в ногу со временем. Меня интересует, есть ли в VB, функции возвращающие подобные значения. До этого я использовал следующее выражение: Hour(Time)*3600+Minute(Time)*60+Second(Time). Заранее благодарю.


Используй API функцию:
Private Declare Function GetTickCount Lib "kernel32" () As Long
DВсе должно получиться
Re: Время с точностью до миллисекунд
От: Аноним  
Дата: 23.04.03 05:53
Оценка:
Здравствуйте, BonoVox, Вы писали:

BV>Здравствуйте. Проблема в следующем: составляется расписание запуска задачи. Задача должна выполняться в строго определенное время. Я использую таймер. Через несколько запусков замечаю, что выполнение задачи отстает от расписания (вероятно это связано с низким приоритетом таймера). Мне необходимо узнать текущее время с точностью до миллисекунд, возможно это и поможет идти в ногу со временем. Меня интересует, есть ли в VB, функции возвращающие подобные значения. До этого я использовал следующее выражение: Hour(Time)*3600+Minute(Time)*60+Second(Time). Заранее благодарю.

Попробуй так

Private Declare Sub GetSystemTime Lib "kernel32" (lpSystemTime As SYSTEMTIME)
Private Type SYSTEMTIME
wYear As Integer
wMonth As Integer
wDayOfWeek As Integer
wDay As Integer
wHour As Integer
wMinute As Integer
wSecond As Integer
wMilliseconds As Integer
End Type

хотя можно и переписать Timer
Re: Время с точностью до миллисекунд
От: Akzhan Россия http://www.akzhan.midi.ru/devcorner/
Дата: 02.05.03 13:12
Оценка:
Здравствуйте, BonoVox, Вы писали:

BV>Здравствуйте. Проблема в следующем: составляется расписание запуска задачи. Задача должна выполняться в строго определенное время. Я использую таймер. Через несколько запусков


Лучше всего запустить отдельную нитку, которая будет спать нужное время с помощью Win32 Sleep.

А наиболее точно промежуток времени можно вычислить с помощью Performance Counter или rdtsc:
http://www.rsdn.ru/Forum/Message.aspx?mid=249579&only=1
Автор: VladD2
Дата: 23.04.03
С уважением,
Акжан, http://www.akzhan.midi.ru/devcorner/ — мой уголок разработчика
Re[2]: Время с точностью до миллисекунд
От: BonoVox  
Дата: 04.05.03 17:03
Оценка:
Здравствуйте, Akzhan, Вы писали:

A>Здравствуйте, BonoVox, Вы писали:


BV>Здравствуйте. Проблема в следующем: составляется расписание запуска задачи. Задача должна выполняться в строго определенное время. Я использую таймер. Через несколько запусков


A>Лучше всего запустить отдельную нитку, которая будет спать нужное время с помощью Win32 Sleep.


A>А наиболее точно промежуток времени можно вычислить с помощью Performance Counter или rdtsc:

A>http://www.rsdn.ru/Forum/Message.aspx?mid=249579&only=1
Автор: VladD2
Дата: 23.04.03


Поток — не есть rulez. В 6 VB поток — опасная штука
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.